簡體   English   中英

根據一個 select 語句中另一列的不同要求對一列求和多次?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM