一个SQL语句分类统计问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:56:30
有两个表:
表1:
产品ID,产品名
表2:
日期,产品ID,生产数量

现在要做一个统计数据得到的结果是:

日期,产品名,今日产量,本月产量
肯定是要用到联合查询,还要分组,现在怎么能把今日产量和本月产量放在一起

select t1.日期,t1.产品名,t1.今日产量,t2.本月产量
from
(select a.日期,a.产品ID,b.产品名,a.生产数量 as 今日产量
from 表2 a inner join 表1 b
on a.产品ID=b.产品ID
where month(cast(日期 as datetime))=getdate())t1
inner join
(select 产品ID,sum(生产数量) as 本月产量 from 表2
where month(cast(日期 as datetime))=month(getdate())
group by 产品ID)t2
on t1.产品ID=t2.产品ID

上面是按照你写的统计字段意思今日和本月产量来的,
即系统当前日前所在日和月.
不知道是这个意思,还是说要求得到当日产量和当月产量.
如果是后者的话,SQL如下
select t1.日期,t1.产品名,t1.今日产量,t2.本月产量
from
(select a.日期,a.产品ID,b.产品名,a.生产数量 as 今日产量
from 表2 a inner join 表1 b
on a.产品ID=b.产品ID)t1
inner join
(select 产品ID,month(cast(日期 as datetime)) as 月,sum(生产数量) as 本月产量 from 表2
group by 产品ID,month(cast(日期 as datetime)))t2
on t1.产品ID=t2.产品ID and month(cast(t1.日期 as datetime))=t2.月

用下列查询语句,前题是 日期字段为日期型:

select 日期,产品名=(select 产品名 from 表1 WHERE 表1.产品ID=A.产品ID),今日产量,本月产量 from
(
select 产品ID,今日产量=sum(生产数量),日期=CONVERT(VARCHAR(1