[英]how do i pull mysql data with case statements into separate columns
我的表如下:
銷售:客戶編號,發票,銷售日期,金額
日記帳:參考,日期,類型,金額
客戶:customerid,customername
我需要從該表中提取數據並以以下格式顯示:
customer name | jan sales| feb sales| march sales| april sales|
等等
我正在嘗試以下查詢:
SELECT
customers.customername AS customer_name,
CASE WHEN EXTRACT(MONTH FROM journal.date) = 1 THEN SUM(journal.amount) AS january_sales ELSE 0 END,
CASE WHEN EXTRACT(MONTH FROM journal.date) = 1 THEN SUM(journal.amount) AS feb_sales ELSE 0 END,
CASE WHEN EXTRACT(MONTH FROM journal.date) = 1 THEN SUM(journal.amount) AS march_sales ELSE 0 END
FROM customers
JOIN sales ON sales.customerid = customers.customerid
JOIN journal ON journal.reference = sales.invoice
WHERE
journal.type = 'sale' AND
journal.date BETWEEN '2013-01-01' AND '2013-03-31' GROUP BY
customers.customername
我無法使該查詢正常工作。 任何幫助表示贊賞。
在SUM
使用CASE
SELECT
customers.customername AS customer_name,
SUM(
CASE
WHEN EXTRACT(MONTH FROM journal.date) = 1
THEN journal.amount
ELSE 0
END
) AS january_sales,
SUM(
CASE
WHEN EXTRACT(MONTH FROM journal.date) = 1
THEN journal.amount
ELSE 0
END
) AS feb_sales,
SUM(
CASE
WHEN EXTRACT(MONTH FROM journal.date) = 1
THEN journal.amount
ELSE 0
END
) AS march_sales
FROM
customers
JOIN sales
ON sales.customerid = customers.customerid
JOIN journal
ON journal.reference = sales.invoice
WHERE journal.type = 'sale'
AND journal.date BETWEEN '2013-01-01'
AND '2013-03-31'
GROUP BY customers.customername
我認為這是您想要的:
SELECT c.customername AS customer_name,
sum(CASE WHEN month(j.date) = 1 THEN j.amount end) AS january_sales,
sum(CASE WHEN month(j.date) = 2 THEN j.amount end) AS feb_sales,
sum(CASE WHEN month(j.date) = 3 THEN j.amount end) AS march_sales
FROM customers c JOIN
sales s
ON s.customerid = c.customerid JOIN
journal j
ON j.reference = s.invoice
WHERE
j.type = 'sale' AND
j.date BETWEEN '2013-01-01' AND '2013-03-31'
GROUP BY c.customername;
您的case
陳述書被弄糟了。 例如,它在語句內部而不是后面具有列別名。 我進行了其他一些更改。 我認為month()
比extract(month)
容易extract(month)
一種觀點,因為后者是ANSI標准)。 我還添加了表別名,以使查詢更易於閱讀。
請注意,如果查詢范圍超過12個月,則可能應查看年份值和月份。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.