DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lilm3m0
今日帖子: 17
在线用户: 30
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 yong (yong) ★☆☆☆☆ -
普通会员
2004/4/27 10:58:48
标题:
这样的要求SQL该怎么写?我等....! 浏览:1263
加入我的收藏
楼主: 现有两个表:
A表:CODE  QTY1 DATA   B表 CODE QTY2
     A     10   4          A    50
     B     15   4          B    51
     C     20   4          C    52
     A     21   3          
     D     22   3    
要求查询结果是:
CODE  QTY1-3  QTY1-4  QTY2
A       21      10     50
B       0       15     51
C       0       20     52
D       22       0     0
SQL语句该怎么写?

----------------------------------------------
-
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/4/27 12:34:15
1楼: select code,sum(qty1-3),sum(qty1-4),qty2 from a,b where a.code=b.code
group by code
就ok了你试试。
----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 yong (yong) ★☆☆☆☆ -
普通会员
2004/4/27 12:53:30
2楼: 不好意思,上面A表中DATA字段还有1,2,5等值!
----------------------------------------------
-
作者:
男 windows.net (windows.net) ★☆☆☆☆ -
盒子活跃会员
2004/4/27 12:56:34
3楼: select code,qty1 as [qty1-3] into temp1 from A where data=3
select code,qty1 as [qty1-4] into temp2 from A where data=4
select case when isnull(temp2.code,'a')='a' then temp1.code else temp2.code end as code,temp1.[qty1-3],temp2.[qty1-4] into temp3 from temp2 full join temp1 ON TEMP1.CODE=TEMP2.code
select case when isnull(temp3.code,'a')='a' then b.code else temp3.code end as code,temp3.[qty1-3],temp3.[qty1-4],b.qty2 from temp3 full join b on temp3.code=b.code
----------------------------------------------
| | 凡事无绝对 | | 不须太强求 | |
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/4/27 13:09:46
4楼: 上面A表中DATA字段还有1,2,5等值! 
是动态的吗?
----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/4/27 13:11:35
5楼: 请把你的需求再叙述清楚一点行吗?

----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 windows.net (windows.net) ★☆☆☆☆ -
盒子活跃会员
2004/4/27 13:17:18
6楼: 我给你的语句,经我的测试完全成功,没想到你后面还有条件,
----------------------------------------------
| | 凡事无绝对 | | 不须太强求 | |
作者:
男 yong (yong) ★☆☆☆☆ -
普通会员
2004/4/27 14:34:05
7楼: A表中CODE是产品代码,DATA表示日期,QTY1是数量,B表中是预计数量,
要求查询结果是一个字段是出货CODE,一个字段是3月出货数量,一个字段是4月出货数量,一个数量是5月预计出货数量(注:3月出货的CODE可能在4月就没有出货,同样4月有出货但3月可能也没有出货,预计数量也一样)

 大家给出出招!!!
----------------------------------------------
-
作者:
男 yong (yong) ★☆☆☆☆ -
普通会员
2004/4/27 14:35:21
8楼: 不好意思,开始比较着急,所以描述有些出处,请大家多多包含!!!
----------------------------------------------
-
作者:
男 yong (yong) ★☆☆☆☆ -
普通会员
2004/4/27 18:08:49
9楼: 我想了一下午,想了个笨方法:
     select distinct code,(select qty from A where A.code=code and data=4), ,(select qty from A where a.code=code and data=3),(select * from B where A.code=B.code) from A 

      这样OK,不知大家还有好的办法吗?
----------------------------------------------
-
作者:
男 windows.net (windows.net) ★☆☆☆☆ -
盒子活跃会员
2004/4/27 19:28:29
10楼: 我上面的你没有试吗,你那个用一句sql语句是不可能实现的!
----------------------------------------------
| | 凡事无绝对 | | 不须太强求 | |
作者:
男 yong (yong) ★☆☆☆☆ -
普通会员
2004/4/27 20:41:51
11楼: 为什么?我试过了,可以呀!:
     select distinct code,(select qty from A where data=4), (select qty from A where data=3),(select * from B where A.code=B.code) from A 
这样应该好看点,,,


----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS