[英]Sum a column multiple times based on different requirements from another column in one select statement?
我想根據狀態列對發票進行匯總。 但我不想做 50 個選擇語句。 我查詢的狀態數量可能會有所不同
我的桌子
|invoice|state|
| 123 | NY |
| 241 | VA |
| 533 | WA |
我可以做這樣的事情:
$sql="Select SUM(invoice) where state=NY as NY AND where state=VA as VA";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($ny,$va);
$stmt->fetch();
echo $ny;
echo $va;
//result: 123 241
任何想法都會很棒! 我是否必須為數組中的每個狀態創建一個在 for 循環中執行的 select 語句? 謝謝!
您可以使用GROUP BY
按狀態獲取總和。
喜歡
Select state,SUM(invoice) as Total FROM table_name GROUP BY state
它將按州為您提供發票上的 SUM。
可能這會幫助你。
也許你正在尋找這樣的東西?
SELECT SUM(CASE WHEN state='NY' THEN Invoice ELSE 0 END) AS 'NY',
SUM(CASE WHEN state='VA' THEN Invoice ELSE 0 END) AS 'VA',
SUM(CASE WHEN state='WA' THEN Invoice ELSE 0 END) AS 'WA'
FROM table_name;
這會給你這樣的結果:
+-----+-----+-----+
| NY | VA | WA |
+-----+-----+-----+
| 123 | 241 | 533 |
+-----+-----+-----+
如果這不是您要查找的結果,您可以為您的問題添加更多詳細信息,例如您的預期輸出等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.