分组依据(名称)和排序依据(日期)我得到了一种包含内部选择查询的大型查询。我的目标是通过现场调用产品编号(这不是唯一的并且多次出现),然后按日期对所有记录进行分组。两个选择查询
我在查询的末尾添加了Order By日期,似乎工作正常。查询按日期顺序生成所有记录,但记录未按ProductNumber分组。
这里是
ProductId Manufacturer ProductNumber Date
1 Kellog H1 05/05/2017
5 Nestle H1 05/01/2017
8 Nutmeg H1 04/30/2017
9 Highland H3 04/09/2017
10 Houston H1 04/15/2017
11 Miami H3 04/12/2017
我试图让输出看起来像下面
ProductId Manufacturer ProductNumber Date
1 Kellog H1 05/05/2017
5 Nestle H1 05/01/2017
8 Nutmeg H1 04/30/2017
10 Houston H1 04/15/2017
9 Highland H3 04/09/2017
11 Miami H3 04/12/2017
因此,数据的可视化样品,我将如何被列字段组(ProductNumber )与分组,然后按日期排序? 在查询中,我添加了按日期排序。当我通过ProductNumber添加组时,错误消息是要求我将内部选择中的所有字段添加到组中。我是否真的需要选择所有的字段(真正的查询中有很多字段)?必须有更好的解决方案。
这里是我的查询(只是一个示例)到目前为止
SELECT DISTINCT TOP 100 *,
FROM (SELECT DISTINCT NP.ManufacuturerId,
C.ManufacuturerName,
IR2.ProductNumber,
NP.Field1,
NP.Field2,
NP.Field3,
NP.Field4,
CN.C2Date CN.CompanyNotificationId,
NPR.NotificationProcessName,
Cast(NP.CompanyId AS VARCHAR(15))
+ NPR.NotificationProcessName AS 'CompanyIdAndProcess',
CC.UserId,
NT.NotificationTypeName,
CC.EmailAddress,
IsRegistered = CASE
WHEN C.IsRegistered = 1 THEN 'Yes'
ELSE 'No'
END,
FROM ProductDetails NP
INNER JOIN Manufactuers C
ON C.ManufacuturerId = NP.ManufacturerId) Q
ORDER BY CN.C2DateDESC;
,会是什么结果,如果'11迈阿密H3 4月12日/ 2017'日期是'05/05/2017'? –
是不是合乎逻辑,当你按产品编号分组和选择查询中的一些其他列应汇总? SQL中有不同的聚集函数,如min,max,Avg等,您可以根据您的要求在选择查询中使用它们,也可以按这些列进行分组。 –