这条SQL语句,难倒多人,请各位指点一二

成都-狗蛋儿 2009-12-27 05:59:39
实现要求:
1.某几个特定项目某日产量之和。(肯定是一条记录)
2.在1后面跟分别几个项目某日产量。(假定是5条记录)
3.重复1.2的步骤。


就是这么一条sql语句,我真的不太明白,想破脑子了,主管说要用到group by
附表结构:
...全文
122 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gdf87521 的回复:]
感谢任贤齐~
[/Quote]
呵呵,客气
成都-狗蛋儿 2009-12-27
  • 打赏
  • 举报
回复
感谢任贤齐~
成都-狗蛋儿 2009-12-27
  • 打赏
  • 举报
回复
a43528782 2009-12-27
  • 打赏
  • 举报
回复
给的资料太少了
ACMAIN_CHM 2009-12-27
  • 打赏
  • 举报
回复
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
成都-狗蛋儿 2009-12-27
  • 打赏
  • 举报
回复
问题出了差池~~
dawugui 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gdf87521 的回复:]
我把sql语句给您发过去:select sum(DATE_OUTPUT) DATE_OUTPUT,sum(month_output) month_output,sum(year_output) year_output,sum(month_avarage) month_avarage from(select UNIT_NAME,ITEM_NAME,round(DATE_OUTPUT,0) DATE_OUTPUT,ts.ordernum, round((select sum(DATE_OUTPUT) ylj from TBLW_PRODUCE_REPORT where ITME_NUMBER=tb.ITME_NUMBER and UNIT_NUMBER=tb.UNIT_NUMBER and to_date(INSERT_DATE,'yyyy-mm-dd')-to_date(tb.INSERT_DATE,'yyyy-mm-dd') <=0 and substr(insert_date,1,7)=substr(tb.INSERT_DATE,1,7) and (nvl(lh,'0')='0' or lh='6')),0) month_output, round((select sum(DATE_OUTPUT) ylj from TBLW_PRODUCE_REPORT where ITME_NUMBER=tb.ITME_NUMBER and UNIT_NUMBER=tb.UNIT_NUMBER and to_date(INSERT_DATE,'yyyy-mm-dd')-to_date(tb.INSERT_DATE,'yyyy-mm-dd') <=0 and substr(insert_date,1,7)=substr(tb.INSERT_DATE,1,7) and (nvl(lh,'0')='0' or lh='6'))/(to_date(INSERT_DATE,'yyyy-mm-dd')-to_date('2009-11-1','yyyy-mm-dd')+1),0) month_avarage, round((select sum(DATE_OUTPUT) nlj from TBLW_PRODUCE_REPORT where ITME_NUMBER=tb.ITME_NUMBER and UNIT_NUMBER=tb.UNIT_NUMBER and to_date(INSERT_DATE,'yyyy-mm-dd')-to_date(tb.INSERT_DATE,'yyyy-mm-dd') <=0 and substr(insert_date,1,4)=substr(tb.INSERT_DATE,1,4) and (nvl(lh,'0')='0' or lh='6')),0) year_output from TBLW_PRODUCE_REPORT tb,TBLZ_PRO_STA_ITEM ts where INSERT_DATE='2009-11-8' and (nvl(lh,'0')='0' or lh='6') and (UNIT_NAME like '%炼钢厂%' or UNIT_NAME like '%热轧%' or UNIT_NAME like '%轧二制钢%' or UNIT_NAME like '%崇利制钢%' or UNIT_NAME like '%钢板公司%') and (F_ITEM_CODE='DG' or F_ITEM_CODE='rzgangdai' or F_ITEM_CODE='yezggc' or F_ITEM_CODE='GCCL' or F_ITEM_CODE='GCCL' or F_ITEM_CODE='gblyj' or F_ITEM_CODE='lgzhb' or F_ITEM_CODE='rzbx') and tb.itme_number=ts.f_item_code and tb.unit_number=ts.fk_fryid  order by ts.ordernum desc)

[/Quote]
这个估计得小P梁出马了.
SQL77 2009-12-27
  • 打赏
  • 举报
回复
SELECT 项目名称,
CONVERT(VARCHAR(10),日期,120)AS TIME
,SUM(数量) FROM TB GROUP BY 项目名称,CONVERT(VARCHAR(10),日期,120)

WITH ROLLUP
dawugui 2009-12-27
  • 打赏
  • 举报
回复
最好给出完整的表结构,测试数据,计算方法和正确结果.


发帖注意事项
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
bancxc 2009-12-27
  • 打赏
  • 举报
回复
roll up ??
成都-狗蛋儿 2009-12-27
  • 打赏
  • 举报
回复
我把sql语句给您发过去:select sum(DATE_OUTPUT) DATE_OUTPUT,sum(month_output) month_output,sum(year_output) year_output,sum(month_avarage) month_avarage from(select UNIT_NAME,ITEM_NAME,round(DATE_OUTPUT,0) DATE_OUTPUT,ts.ordernum, round((select sum(DATE_OUTPUT) ylj from TBLW_PRODUCE_REPORT where ITME_NUMBER=tb.ITME_NUMBER and UNIT_NUMBER=tb.UNIT_NUMBER and to_date(INSERT_DATE,'yyyy-mm-dd')-to_date(tb.INSERT_DATE,'yyyy-mm-dd')<=0 and substr(insert_date,1,7)=substr(tb.INSERT_DATE,1,7) and (nvl(lh,'0')='0' or lh='6')),0) month_output, round((select sum(DATE_OUTPUT) ylj from TBLW_PRODUCE_REPORT where ITME_NUMBER=tb.ITME_NUMBER and UNIT_NUMBER=tb.UNIT_NUMBER and to_date(INSERT_DATE,'yyyy-mm-dd')-to_date(tb.INSERT_DATE,'yyyy-mm-dd')<=0 and substr(insert_date,1,7)=substr(tb.INSERT_DATE,1,7) and (nvl(lh,'0')='0' or lh='6'))/(to_date(INSERT_DATE,'yyyy-mm-dd')-to_date('2009-11-1','yyyy-mm-dd')+1),0) month_avarage, round((select sum(DATE_OUTPUT) nlj from TBLW_PRODUCE_REPORT where ITME_NUMBER=tb.ITME_NUMBER and UNIT_NUMBER=tb.UNIT_NUMBER and to_date(INSERT_DATE,'yyyy-mm-dd')-to_date(tb.INSERT_DATE,'yyyy-mm-dd')<=0 and substr(insert_date,1,4)=substr(tb.INSERT_DATE,1,4) and (nvl(lh,'0')='0' or lh='6')),0) year_output from TBLW_PRODUCE_REPORT tb,TBLZ_PRO_STA_ITEM ts where INSERT_DATE='2009-11-8' and (nvl(lh,'0')='0' or lh='6') and (UNIT_NAME like '%炼钢厂%' or UNIT_NAME like '%热轧%' or UNIT_NAME like '%轧二制钢%' or UNIT_NAME like '%崇利制钢%' or UNIT_NAME like '%钢板公司%') and (F_ITEM_CODE='DG' or F_ITEM_CODE='rzgangdai' or F_ITEM_CODE='yezggc' or F_ITEM_CODE='GCCL' or F_ITEM_CODE='GCCL' or F_ITEM_CODE='gblyj' or F_ITEM_CODE='lgzhb' or F_ITEM_CODE='rzbx') and tb.itme_number=ts.f_item_code and tb.unit_number=ts.fk_fryid order by ts.ordernum desc)
ACMAIN_CHM 2009-12-27
  • 打赏
  • 举报
回复
不要贴图,别人不方便复制。


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧