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