我从 DB2 获取数据时遇到问题。我想按客户汇总发票金额。在一个字段中,(计算 - 我称之为 InvoicedThisYear)它计算出今年开具的发票,而在另一个领域,它计算出上一年开具的发票(计算,我称之为 InvoicedLastYear)。但是,正如总结的那样,我已按客户对其进行分组,但它也需要按 InvoiceYear 分组的数据,因此我必须将其包含在分组中。我的问题是在我的结果中,我现在在没有数据和重复的年份中为零,例如:
Cust InvoicedThisYear InvoiceLastYear
abc 0 100
abc 100 0
理想情况下我希望看到
Cust InvoicedThisYear InvoicedLastYear
abc 100 100
这是我的代码:
SELECT
Cust AS Customer,
(CASE WHEN InvoiceYear = Year(Current Date) THEN sum(InvoiceAmt)ELSE 0 END) as InvoicedThisYear,
(CASE WHEN InvoiceYear = year(Current Date)-1 THEN sum(InvoiceAmt)ELSE 0 END) as InvoicedLastYear
FROM
InvHead
GROUP BY
Cust,
InvoiceYear
HAVING
((CASE WHEN InvoiceYear = Year(Current Date) THEN sum(InvoiceAmt)ELSE 0 END)<>0)
OR
((CASE WHEN InvoiceYear = year(Current Date)-1 THEN sum(InvoiceAmt)ELSE 0 END)<>0)
ORDER BY
Cust
我怎样才能得到想要的结果?如果我删除 groupby Invoice Year,查询将不会运行
作为大小说明,它可以在 MS Access 中使用,无需按发票年份分组!
谢谢,
迈克尔