【发布时间】:2018-06-16 06:14:12
【问题描述】:
我有两张桌子,Transaction 和 TransactionType。这是表格外观的示例。
Transanction Table
+---------------+------------+--------+-------------------+
| TransactionId | CustomerId | Amount | TransactionTypeId |
+---------------+------------+--------+-------------------+
| 1 | 2743 | 21.43 | 3 |
| 2 | 6185 | 81.38 | 3 |
| 3 | 3157 | 32.76 | 2 |
| 4 | 9435 | 91.75 | 1 |
| 5 | 1853 | 17.09 | 3 |
+---------------+------------+--------+-------------------+
TransactionType Table
+-------------------+-------------+
| TransactionTypeId | Description |
+-------------------+-------------+
| 1 | Cash |
| 2 | Card |
| 3 | Check |
+-------------------+-------------+
我正在寻找一种方法,可以在Transaction 表中显示每个TransactionTypeId 的出现次数,然后将JOIN 显示到TransactionType 表中,以便我可以看到描述。我尝试使用这个SELECT 声明:
SELECT COUNT(t.TransactionTypeId), tt.[Description]
FROM TransactionTable t
INNER JOIN TransactionType tt ON t.TransactionTypeId = tt.TransactionTypeId
GROUP BY t.TransactionTypeId
ORDER BY tt.[Description]
希望创造这样的结果:
+----------------------------+-------------+
| COUNT(t.TransactionTypeId) | Description |
+----------------------------+-------------+
| 3 | Card |
| 1 | Cash |
| 1 | Check |
+----------------------------+-------------+
但是,我收到一条错误消息:“列 'TransactionType.Description' 在选择列表中无效,因为它不包含在 GROUP BY 子句的聚合函数中。”
我究竟做错了什么。我需要如何更改我的SELECT 语句才能达到我想要的结果?
【问题讨论】:
-
你还必须按描述分组
标签: sql sql-server join group-by