![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 repair168 ![]()
![]() |
我有一個MySql,裡面有Table為purchse,兩個欄位分別是購買次數(Buys),和退貨次數(RET) 我要製作一個統計表,必須能同時顯示每個公司購買次數和退貨次數; 如果單獨撈取購買次數,我知道是 Select company,buys,count(*) from purchase where Buys<>0 group by company, 反之為 Select company,buys,count(*) from purchase where RET<>0 broup by company 可是現在我有辦法用同一個SQL語法完成以上兩個需求嗎?若是分成兩個SQL,之前我個人經驗 是要夾在不同的<TABLE></TABLE>,若是同一個TABLE使用SQL1和SQL2,就會出現錯誤 不過因為統計資料格式所需,是否有辦法放再同一個TABLE內 謝謝~
本篇文章發表於2014-06-04 17:10
|
1樓 |
SELECT A.Company, A.BuysCount, B.RETCount
FROM (Select company, count(*) as BuysCount from purchase where Buys<>0 group by company) A LEFT JOIN (Select company, count(*) as RETCount from purchase where RET<>0 group by company) B on A.Company=B.Company
本篇文章回覆於2014-06-04 22:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
有點不太明白
表單資料中購買次數和退貨次數是0或1,還是可能大於1 如果購買次數和退貨次數可能大於1,那同一間公司是只有一筆記錄還是會有多筆記錄
本篇文章回覆於2014-06-05 09:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
原SQL理論上應該是不能執行的
而且用count會讓直覺次數是只有0或1兩種 如果是同一公司多筆資料,而且次數可能大於1 應該可以這樣寫 SELECT `company`,SUM(`Buys`),SUM(`RET`) FROM `purchase` GROUP BY `company` 話說這個問題應該去資料庫的MySQL版發問吧
本篇文章回覆於2014-06-05 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
在欄位上 用子查詢就好了,只是sql會較長, 如
Select company,buys,count(*) from purchase where Buys<>0 group by company, 反之為 Select company,buys,count(*) from purchase where RET<>0 broup by company =>以下是我的解法,別名 我是 取'Buys<>0' 'RET<>0',你要改中文也可以 select A.company ,(Select a.count(*) from purchase a where A.company=a.company and a.Buys<>0 group by a.company ) 'Buys<>0' ,(Select b.count(*) from purchase b where A.company=b.company and b.Buys<>0 group by a.company ) 'RET<>0' form purchase A
本篇文章回覆於2015-02-15 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
在欄位上 用子查詢就好了,只是sql會較長, 如
Select company,buys,count(*) from purchase where Buys<>0 group by company, 反之為 Select company,buys,count(*) from purchase where RET<>0 broup by company =>以下是我的解法,別名 我是 取'Buys<>0' 'RET<>0',你要改中文也可以 select A.company ,(Select a.count(*) from purchase a where A.company=a.company and a.Buys<>0 group by a.company ) 'Buys<>0' ,(Select b.count(*) from purchase b where A.company=b.company and b.RET<>0 group by a.company ) 'RET<>0' form purchase A
本篇文章回覆於2015-02-15 19:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |