现有两表:产量表 和 保留品表
产量表 列名有 日期, 班次, 产量
2011-08-01 早班 100
2011-08-01 中班 100
2011-08-01 晚班 100
2011-08-02 早班 100 保留品表 列名有 日期, 班次, 保留品
2011-08-01 早班 30
2011-08-01 晚班 30
2011-08-02 早班 30
需要合成的结果: 日期, 产量, 保留品
2011-08-01 300 60
2011-08-02 100 30 请教各位大侠,这个查询语句怎么写?
非常感谢
产量表 列名有 日期, 班次, 产量
2011-08-01 早班 100
2011-08-01 中班 100
2011-08-01 晚班 100
2011-08-02 早班 100 保留品表 列名有 日期, 班次, 保留品
2011-08-01 早班 30
2011-08-01 晚班 30
2011-08-02 早班 30
需要合成的结果: 日期, 产量, 保留品
2011-08-01 300 60
2011-08-02 100 30 请教各位大侠,这个查询语句怎么写?
非常感谢
解决方案 »
- 怎么意识不到数据库导出权限“EXPORT FULL DATABASE ”的用途啊?
- 关于oracle临时表空间temp的问题???
- RHEL 5下ORACLE 11G 自动启动脚本不执行。
- 字符集US7ASCII导出的数据,迁移到字符集ZHS16GBK的数据库中
- 仓库管理系统代码 B/S c# asp.net2.0 Oracle,那位同仁巧有相关的代码,给我发一封,谢谢!!
- sql语句查询排序
- 求助一条sql查询
- 请教一个关于oracle pro*c的问题!谢谢!
- 我想让JOBS暂时的失效几天,而不想删除,该怎么做啊?在线等待
- ORA-01830: 日期格式图片在转换整个输入字符串之前结束:这个怎么处理?
- 各位大哥要帮帮小妹啊,我接触oracle才一周,现在有个很重的任务要完成!!!
- jxl 读取 excel 在插入oracle
select 日期
,sum(case when type='产量表' then 产量 else 0 end) 产量
,sum(case when type='保留品表' then 产量 else 0 end) 保留品表
from
(
select a.*,'产量表' type
from 产量表 a
union all
select a.*,'保留品表' type
from 保留品表 b
)
group by 日期
;
--多对多的处理方法,转化成1对多 或者1对1
select 日期,sum(产量) as cnt1
from 产量表
group by 日期;
--解决一个多的问题,剩下的用这个1 和 保留品表的多关联也行,或者把 保留品表 也变成 1 再关联也行
select 日期,sum(产量) as cnt2
from 保留品表
group by 日期; --最后的sqlSELECT T1.日期, T1.CNT1, T2.CNT2
FROM (SELECT 日期, SUM(产量) AS CNT1 FROM 产量表 GROUP BY 日期) T1,
(SELECT 日期, SUM(产量) AS CNT2 FROM 保留品表 GROUP BY 日期) T2
WHERE T1.日期 = T2.日期;