◆求一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应该怎么写?谢谢。
...全文
273 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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