无法理解这一点,我可能没有帮助我没有任何SQL小组。经验。
我有一个包含transaction_type
列和amount
列的表格。基本上我正在尝试使用SQL / Eloquent在单个查询中获取以下内容(如果可能,我知道这不是&s; sql):
add = SUM(amount) where transaction_type == 1
delete = SUM(amount) WHERE transaction_type == 2
return from MySQL: add-delete
我假设这将使用groupby完成,但尽管我尽了最大努力,但我还是无法通过阅读sql文档找到解决方案。
我想我已经使用普通的SQL了,但是如何将其转换为Eloquent:
SELECT `transaction_type`, SUM(`amount`) FROM `credit_logs` WHERE `to_group_id` = '1'
答案 0 :(得分:0)
我无法用口才帮助你,但你的查询应该是这样的:
SELECT
SUM(CASE WHEN transaction_type = 1 THEN amount ELSE NULL END)
-
SUM(CASE WHEN transaction_type = 2 THEN amount ELSE NULL END)
FROM credit_logs
WHERE to_group_id = 1;
或者您希望分组的所有ID:
SELECT
SUM(CASE WHEN transaction_type = 1 THEN amount ELSE NULL END)
-
SUM(CASE WHEN transaction_type = 2 THEN amount ELSE NULL END)
FROM credit_logs
GROUP BY to_group_id;
最容易的是,如果你找到一种方法只是用雄辩的方式执行一个查询。永远不明白为什么有人想要将一个好的可读查询转换为框架的一些“改进的”语法。