【发布时间】:2022-06-29 01:10:23
【问题描述】:
我使用的是 SQL Server 2019,我想得到一些结果,但我不知道如何。
我有表 ORDERS 有 5 列:1 ID、2.Date 3.Customer Name 4. Total Amount 和 5. Category。
我想要做的是,我想查看所有订单,但我只希望“食品”类别中的订单分组收集并显示在一行中,而其他类别 1 接 1 显示,只有订单什么有类别 FOOD 组和其他显示没有组。
谢谢
【问题讨论】:
我使用的是 SQL Server 2019,我想得到一些结果,但我不知道如何。
我有表 ORDERS 有 5 列:1 ID、2.Date 3.Customer Name 4. Total Amount 和 5. Category。
我想要做的是,我想查看所有订单,但我只希望“食品”类别中的订单分组收集并显示在一行中,而其他类别 1 接 1 显示,只有订单什么有类别 FOOD 组和其他显示没有组。
谢谢
【问题讨论】:
union 是最简单的方法。这样您就可以对“食物”类别进行分组,并逐行显示其他所有内容。
SELECT
[ID]
,[Date]
,[Customer Name]
,[Total Amount]
,[Category]
FROM
[ORDERS]
WHERE
[Category] != 'Food'
UNION
SELECT
NULL [ID] -- or MAX([ID]) [ID]
,NULL [Date] -- or MAX([Date]) [Date]
,NULL [Customer Name] -- or 'All Food Customers' [Customer Name]
,SUM([Total Amount]) [Total Amount]
,[Category]
FROM
[ORDERS]
WHERE
[Category] = 'Food'
GROUP BY
[Category]
ORDER BY
[Category]
【讨论】: