[英]MySql Count Same Column multiple times
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)
它工作正常,並返回日期超過10天的所有發票的計數。 我現在想要在同一查詢中返回超過20天和100天的發票的計數。 理想情況下,查詢將返回如下內容:
10 Days 20 Days 100 Days
350 280 90
使用指定的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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.