SELECT COUNT(w.invoiceId) AS '10 Days' FROM tbl_Invoice w
WHERE w.invoiceId NOT IN(
SELECT inv.invoiceId FROM tbl_InvoiceAllocation inv)
AND w.invoiceDate < DATE_SUB(curdate(), INTERVAL 10 DAY)
Run Code Online (Sandbox Code Playgroud)
它工作正常,并返回日期超过10天的所有发票的计数.我现在想要在同一查询中返回超过20天和100天的发票的计数.理想情况下,查询将返回如下内容:
10 Days 20 Days 100 Days
350 280 90
Run Code Online (Sandbox Code Playgroud)
使用指定的WHERE子句作为CASE语句将COUNT更改为SUM,其中true值为1,false值为0
就像是
SELECT SUM( CASE WHEN w.invoiceDate < DATE_SUB(curdate(), INTERVAL 10 DAY) THEN 1 ELSE 0 END) AS '10 Days',
SUM( CASE WHEN w.invoiceDate < DATE_SUB(curdate(), INTERVAL 20 DAY) THEN 1 ELSE 0 END) AS '20 Days'
FROM tbl_Invoice w
WHERE w.invoiceId NOT IN(
SELECT inv.invoiceId
FROM tbl_InvoiceAllocation inv)
AND w.invoiceDate < DATE_SUB(curdate(), INTERVAL 20 DAY)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |