除了1列之外的所有SQL的WHERE子句对于发票?

时间:2013-06-18 00:45:10

标签: sql

对不起,如果这是一个新手问题 - 但我在这里有点卡住了。

tblImport - >导入发票对帐单

qryReport - >根据发票金额的总和在tblImport上按州编制报表,但仅适用于州管辖权。但是,虽然我只想要州政府的发票金额 - 我希望税额包括与州有关的任何税收(不论管辖权)。

显然我的陈述看起来像这样:

SELECT tblImport.Invoice, tblImport.State, tblImport.InvoiceAmount, tblImport.JurisdictionType, tblImport.TaxAmount
FROM tblImport
WHERE tblImport.JurisdictionType = 'State'
ORDER BY State
GROUP BY State

因此,我不希望TaxAmount受WHERE子句的约束。我可以做什么其他的工作?

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西

SELECT SUM(case when tblImport.JurisdictionType = 'State' then tblImport.InvoiceAmount else 0 end) as InvoiceAmount, 
      tblImport.State, 
      SUM(tblImport.TaxAmount) as TaxAmount
FROM tblImport
ORDER BY State
GROUP BY State

当您使用Group By时,如果没有聚合,则无法显示Invoice, JurisdictionType。对于InvoiceAmount,此解决方案仅为JurisdictionType = 'State'提供SUM,并包含与州相关的任何税(无论辖区如何)