【发布时间】:2018-06-14 08:21:13
【问题描述】:
我对一段 SQL 代码有一点问题。我有一个表 Paiements_17_18,我想创建一个单行查询来计算:
- 金额字段的总和,
- Date_Regulation 字段的第一个日期,
- Date_Regulation 字段的最后日期,
- N_Facture 字段的不同值。
所有这些都来自SELECT TOP n FROM ....样式的子请求
我试过这个:
SELECT Sum(P.Montant) AS TotalMontant,
First(P.Date_Regulation) AS PremièreDate,
Last(P.Date_Regulation) AS DernièreDate,
First(P.N_Facture) AS PremièreFacture,
Last(P.N_Facture) AS DernièreFacture,
(SELECT Count(N_Facture)
FROM (SELECT DISTINCT N_Facture FROM Paiements_17_18)) AS NombreFactures
FROM (SELECT TOP 5 Paiements_17_18.*
FROM Paiements_17_18
ORDER BY Paiements_17_18.ID_Paiement DESC) AS P;
但是我得到一个“P”的错误
(Microsoft Access 数据库引擎找不到输入表或 查询“P”。确保它存在并且它的名字是拼写的 正确)
你能帮帮我吗?
【问题讨论】:
-
如果删除生成 NombreFactures 的 2 行,会报错吗?
-
按照您的逻辑从我的示例数据中,我无法重现错误。通过查看语法,我看不出为什么会引发错误。确保这个确切的查询正在生成该错误。可能您的实际不包括表别名
P。 -
@kc2018;是的,当我删除生成 NombreFactures 的行时,不再有错误!
-
@Parfait;我没有包括表的别名 P 是什么意思
-
我是说在您的实际查询中,您可能已经错过了最后的
P,即使它已发布在这里。很奇怪!我测试了SELECT Count(...) FROM (SELECT DISTINCT ...)没有问题!