我有一个超过3年的产品销售数据集,我想写一个查询来查询最近3个月的最大产品销售量:
示例:
Prod_name | Prod_Cat | Tran_date | Total_Amt | Tax |...
如何使用日期功能查看最近3个月该类别中最多销售的产品?
这将为您提供在截至2014-10-23的过去3个月中销售量最大的产品
select top 1 Prod_name, sum(Total_Amt +Tax) as Sale
from tbl where Tran_date > dateadd(month, -3,'2014-10-23')
group by Prod_name
order by 2 desc
如果您想要直到今天
select top 1 Prod_name, sum(Total_Amt +Tax) as Sale
from tbl where Tran_date > dateadd(month, -3,getdate())
group by Prod_name
order by 2 desc
这里是如何将其包装到以date为参数的函数中。没有测试:
CREATE FUNCTION dbo.ufnGetmaximumproduct(@Date datetime)
RETURNS varchar(10)
AS
-- Returns the stock level for the product.
BEGIN
DECLARE @ret varchar(10);
select @ret =Prod_name from
(
select top 1 Prod_name, sum(Total_Amt +Tax) as Sale
from tbl where Tran_date > dateadd(month, -3,@Date)
group by Prod_name
order by 2 desc
)a
RETURN @ret;
END;