SQL group by by group by?

时间:2011-02-10 16:56:51

标签: sql group-by sql-server-ce

假设我有3张桌子:顾客,武器和订单。我想要的是创建一个表格,我需要为每个客户显示他/她按类别购买的商品数量(枪支,手枪等)和武器总量?它只使用SQL查询可实现吗?我可以在没有子查询的情况下实现这个,因为我打算使用SQL CE吗?

表具有以下结构: 客户(身份证,姓名) 武器(id,weapon_type) 订单(cust_id,weap_id,quantity)

我希望得到这个:

Name       | Order(w_type) |    Quantity  |   Total
-----------+---------------+--------------+-----------
John Smith |   Guns        |     3        |   7
John Smith |   Pistols     |     4        |   7
-----------+---------------+--------------+-----------
Jane Doe   |   Guns        |     5        |   14
Jane Doe   |   Pistols     |     7        |   14
Jane Doe   |   Cannons     |     2        |   14

或(甚至更好)

Name       |   Order       |    Quantity  |   Total
-----------+---------------+--------------+-----------
John Smith |   Guns        |     3        |   
John Smith |   Pistols     |     4        |   
-----------+---------------+--------------+-----------                                         
                                              7   
-----------+---------------+--------------+-----------
Jane Doe   |   Guns        |     5        |   
Jane Doe   |   Pistols     |     7        |   
Jane Doe   |   Cannons     |     2        |   
-----------+---------------+--------------+-----------
                                              14 

感谢。

1 个答案:

答案 0 :(得分:0)

CE中没有分析函数(例如SUM()OVER)可以给你第一个结果。

如果您的预期(“更好”)结果是第2个,甚至不是表格,您需要触发两个查询;一个用于表,一个用于总和。要么是这样,要么在你通过表格结果时收集金额(按人格排序)。