首页 > 解决方案 > 如何使用代码显示所有假期类型

问题描述

我的作业,我要写sql代码来显示“在2015年的所有订单中,计算每个holidaytype的天数,以及每个holidaytype每天的平均销售额。排除holidaytype=NULL。将结果按平均值排序每天的销售额从高到低。”

这是我一直在尝试使用的代码

select distinct holidaytype, sum(AvgSales) as AvgSales, sum(NumDays) as NumDays
from(
Select min(holidaytype) as holidaytype, count(order_date) as cnt, count(numholidays) as NumDays, avg(o.sales*o.quantity) as AvgSales
from orderline o, orders1 o1, calendar c  
where o.Order_ID=o1.Order_ID  and datepart(yyyy,order_date)= 2015 and holidaytype is not null) J
group by holidaytype
go

在输出中,只显示了 1 种假期类型,但我应该有 6 或 7 种不同的假期类型。

标签: sqlsql-servertsql

解决方案


根据您的问题,您正在按假期类型进行分组,因此聚合它没有意义,这无论如何都不是您想要的。

所以代替这个:

Select min(holidaytype) as holidaytype,

你应该做这个:

Select holidaytype,

推荐阅读