◆求一sql语句◆

cwm545 2004-08-22 08:54:01
表1:订单表
tid 合同编号 型号 订单数量 备注
0 2004A 3000 重要
1 2004A rf001 1000
1 2004A rf002 2000

表2:售货表
tid 售货编号 合同编号 型号 售出数量 备注
0 ps2004 2004A 1000 重要
1 ps2004 2004A rf001 0
1 ps2004 2004A rf002 1000

(注:以上的表中的tid为0时就是总,1时就是分。如订单表中的tid,
这样主要是证明合同编号2004A里面有型号rf001,rf002,还有个备注)
现在想生成这样:

合同编号 型号 订单数量 售出数量 还存数量
2004A rf001 1000 0 1000
2004A rf002 2000 1000 2000

原有的表结构不可更改,请问这用sql应该怎么写?谢谢。
...全文
211 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wumylove1234 2004-08-24
靠.你到是结帖啊????
真是的!
回复
wumylove1234 2004-08-23
谢谢你们,不过还有个问题:
如果我在where的最后加上一句“and a.nb='2004082001'”,它显示的竞是只有一条的记录而且还是错误的。现在主要是想问,如果要加上个合同编号判断,应该加在哪?即只查询指定的合同编号。


如果这个nb在你的一个表中,主记录与明细记录都有的话,结果就应该是正确的吧.确保主记录与明细记录都有这个nb字段里相同的值!
回复
cwm545 2004-08-23
顶下。。
回复
cwm545 2004-08-23
谢谢你们,不过还有个问题:
如果我在where的最后加上一句“and a.nb='2004082001'”,它显示的竞是只有一条的记录而且还是错误的。现在主要是想问,如果要加上个合同编号判断,应该加在哪?即只查询指定的合同编号。
回复
wumylove1234 2004-08-23
不如再深入一下,在SQL语句里也有三种可以处理是否为Null的方法.
Isnull,Nulliif,COALESCE

有时间看看?
回复
cwm545 2004-08-23
用isunll就行了,结贴。
回复
cwm545 2004-08-23
我主要是想在sql语句中转换。
回复
starsoulxp 2004-08-23
加一个 & "" ,就不会出错了
回复
cwm545 2004-08-23
谢谢你们,之前输错了一个数据,结果导致测试老是出错,现在明朗了。
但还有个问题,就是当无售货记录时,是显示Null的,在sql语句中怎么把它转换为0?
回复
talent303 2004-08-23
select a.合同编号,a.型号,a.订单数量,b.售出数量,(a.订单数量-b.售出数量) as 还存数量 from 表1 a left join 表2 b on a.合同编号=b.合同编号 and a.型号=b.型号 where a.tid<>0 and a.合同编号='2004b'
回复
wumylove1234 2004-08-23
select a.合同编号,a.型号,a.订单数量,b.售出数量,(a.订单数量-b.售出数量) as 还存数量 from 表1 a left join 表2 b on a.合同编号=b.合同编号 and a.型号=b.型号 where a.tid<>0 and a.合同编号='2004b'
回复
cwm545 2004-08-23
谢谢,不过我现在只要查询其中一个合同编号的订售情况?如合同编号='2004b'的?
回复
Andy__Huang 2004-08-22
嘿!我漏打了一個join,樓下的也不知道,應該是下面,你再試

select a.合同编号,a.型号,a.订单数量,b.售出数量,(a.订单数量-b.售出数量) as 还存数量 from 表1 a left join 表2 b on a.合同编号=b.合同编号 and a.型号=b.型号 where a.tid<>0
回复
luoshulin 2004-08-22
select a.合同编号,a.型号,a.订单数量,b.售出数量,(a.订单数量-b.售出数量) as 还存数量 from 表1 a left join 表2 b on a.合同编号=b.合同编号 and a.型号=b.型号 where a.tid<>0

这个不可以么?
回复
cwm545 2004-08-22
谢谢你们,不过都还提示出错。
提示:'售货表' 不是可以识别的 join 选项。
from rf a left pvb b on a.nb=b.nb
回复
iiboy 2004-08-22
select a.合同编号,a.型号,a.订单数量,b.售出数量,(a.订单数量-b.售出数量) as 还存数量 from 表1 a left 表2 b on a.合同编号=b.合同编号 where a.tid<>0 and a.型号=b.型号
回复
Andy__Huang 2004-08-22
select a.合同编号,a.型号,a.订单数量,b.售出数量,(a.订单数量-b.售出数量) as 还存数量 from 表1 a left 表2 b on a.合同编号=b.合同编号 and a.型号=b.型号 where a.tid<>0
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-08-22 08:54
社区公告
暂无公告