Sql MSAccess子数据表
我有一个Access查询,在子数据表中列出发票和相关项目:Sql MSAccess子数据表,sql,ms-access,Sql,Ms Access,我有一个Access查询,在子数据表中列出发票和相关项目: SELECT DISTINCTROW OutgoingInvoice.InvoiceID, OutgoingInvoice.Sum, OutgoingInvoice.Complete, Sum(Products.IncomingSUM) AS [Sum Of Products_SUM], [OutgoingInvoice].[Sum]-[Sum Of Products_SUM] AS Különbözet, OutgoingInvoic
SELECT DISTINCTROW OutgoingInvoice.InvoiceID, OutgoingInvoice.Sum, OutgoingInvoice.Complete, Sum(Products.IncomingSUM) AS [Sum Of Products_SUM], [OutgoingInvoice].[Sum]-[Sum Of Products_SUM] AS Különbözet, OutgoingInvoice.Note, OutgoingInvoice.ID
FROM OutgoingInvoice INNER JOIN Products ON OutgoingInvoice.[ID] = Products.[OutgoingInvoice]
GROUP BY OutgoingInvoice.InvoiceID, OutgoingInvoice.Sum, OutgoingInvoice.Complete, OutgoingInvoice.Note, OutgoingInvoice.ID;
问题在于,没有显示项目的发票:
如何显示OutgoingInvice中的所有行(即使它们没有加入子项)使用
DISTINCT
和GROUP BY
始终可以推断您的聚合有问题<代码>分组依据将为每个不同的组提供一行,因此除非您的分组依据
错误,否则不同的
应该是多余的。使用左或右连接,而不是内部连接。ms-access不使用t-SQL。感谢您的帮助!由access生成的查询,但我删除了DISTINTROW。当然,左键连接是解决方案,谢谢!还有一个问题:我只能编辑子数据表中的文件。是否也可以编辑主查询字段?(错误消息:“此记录集不可更新”)
SELECT OutgoingInvoice.InvoiceID,
OutgoingInvoice.Sum,
OutgoingInvoice.Complete,
Sum(Products.IncomingSUM) AS [Sum Of Products_SUM],
[OutgoingInvoice].[Sum]-[Sum Of Products_SUM] AS Különbözet,
OutgoingInvoice.Note,
OutgoingInvoice.ID
FROM OutgoingInvoice
LEFT JOIN Products ON OutgoingInvoice.[ID] = Products.[OutgoingInvoice]
GROUP BY OutgoingInvoice.InvoiceID,
OutgoingInvoice.Sum,
OutgoingInvoice.Complete,
OutgoingInvoice.Note,
OutgoingInvoice.ID;