不确定标题是否解释了我正在尝试做的事情,但是我无法说出来。
我正在尝试为一些图创建输出。我的目标输出只是mySQL表中按类别ID分组的某些行的总值。我的表格如下:
Transactions:
TransactiondID | TransactionName |TransactionCategory| Value
*************************************************************
1 | GenericText1 | 1 | 30
2 | GenericText2 | 1 | 38
3 | GenericText2 | 2 | 38
我的TransactionCategory参考数据
TranCatID | TransCatName
*************************
1 | Tranportation
2 | Petrol
所以我想要做的是每个类别的值字段的SUM。所以我会得到一个输出。
Category | Value
****************************
Transportation | 68
Petrol | 30
我得到了这个,但它不起作用。我认为这完全不正确,但想表明我的尝试。
SELECT SUM( `TransactionValue`) AS Value,
transaction_category.transaction_category
FROM Transactions
JOIN transaction_category on Transactions.TransactionID = transaction_category_id
答案 0 :(得分:1)
通过“TransactionCategory”或“TranCatID”进行分组,可以得到如下所示的结果:
SELECT TransactionCategory.TransCatName, SUM( `Value`) AS Value FROM Transactions JOIN TransactionCategory on Transactions.TransactionCategory = TransactionCategory.TranCatID GROUP BY TransactionCategory.TransactionCategory;
or
SELECT TransactionCategory.TransCatName, SUM( `Value`) AS Value FROM Transactions JOIN TransactionCategory on Transactions.TransactionCategory = TransactionCategory.TranCatID GROUP BY TransactionCategory.TranCatID;
答案 1 :(得分:0)
这应该可以解决问题
SELECT TransactionCategory.TransCatName,
SUM(Transactions.Value) as Value
FROM Transactions
LEFT JOIN TransactionCategory ON TransactionCategory.TranCatID = Transaction.TransactionCategory
答案 2 :(得分:0)
您可以使用:
SELECT tc.TransCatName Category, SUM(t.Value) as Value
FROM TransactionCategory tc
LEFT JOIN Transactions t ON tc.TranCatID = t.TransactionCategory
group by tc.TransCatName
<强>输出强>
Category | Value
-----------------------
Petrol | 38
Transportation | 68
请注意<{>> PETROL 的SUM
,如上所述38
,在您的问题说明中写错了30
!