如何对产品进行分组,然后在TSQL中按日期描述对其进行排序?
下面是SQL,但它给了我一个错误:如何对产品进行分组,然后在TSQL中按日期描述对其进行排序?,sql,qtsql,Sql,Qtsql,下面是SQL,但它给了我一个错误: select u.productId, count(ProductID) as total, p.Name from dbo.UserXProduct AS u INNER JOIN dbo.product AS p ON u.ProductID = p.ID group by productid, p.name having count(ProductID) > 5 order by u.dateEntered desc, total d
select u.productId, count(ProductID) as total, p.Name
from dbo.UserXProduct AS u
INNER JOIN dbo.product AS p ON u.ProductID = p.ID
group by productid, p.name
having count(ProductID) > 5
order by u.dateEntered desc, total desc
编辑:以下是我得到的错误:
列“dbo.UserXProduct.DateEntered”在ORDER BY中无效
子句,因为它不包含在聚合函数或
GROUPBY子句
您不能在“分组依据”中引用列别名。请尝试以下方法:
select u.productId, count(ProductID) as total, p.Name
from dbo.UserXProduct AS u
INNER JOIN dbo.product AS p ON u.ProductID = p.ID
group by productid, p.name
having count(ProductID) > 5
order by count(ProductID) desc
您不能按订购u.dateEntered列,除非该列出现在
group BY
中。您不能直接按u.dateEntered订购。但是,您可以按max(u.dateEntered)
订购。这可能是您对最新产品的期望:
select u.productId, count(ProductID) as total, p.Name
from dbo.UserXProduct AS u
INNER JOIN dbo.product AS p ON u.ProductID = p.ID
group by productid, p.name
having count(ProductID) > 5
order by max(u.dateEntered) desc, total desc
谢谢你的回复。实际上,我对DateEntered列有问题。这里是错误:列“dbo.UserXProduct.DateEntered”在ORDER BY子句中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。问题是,如果我在之前将DateEntered添加到GROUP中,那么结果就不是我所期望的。我要的是最新的畅销货订单。