一句简单的SQL语句的写法,请大家进来拿分!!真是太简单了!

yyhao 2003-05-01 11:31:32
表1:材料清单
ID  材料名称
--- --------
A   笔
B   墨
C   纸
D   砚

表2:一月分购进材料
ID   购进数量
---- ------
A    100
B    80
C    200

表3:二月份购进材料
ID   购进数量
----  ---------
B    50
D    30

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
要通过以上三表得到下面的表:
ID  材料名称   一月份购进量   二月份购进量
---- --------- ------------- ------------
A   笔      100        null
B 墨      80 50
C   纸      200 30
D   砚      null  null
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-05-01
  • 打赏
  • 举报
回复
select *,(select 购进数量 from 表2 where id=表1.id) 一月份购进量,(select 购进数量 from 表3 where id=表1.id) 二月份购进量 from 表1
yyhao 2003-05-01
  • 打赏
  • 举报
回复
谢谢以上各位,还有其他写法的吗?
pengdali 2003-05-01
  • 打赏
  • 举报
回复
或:
select a.id,a.材料名称,b.购进数量,c.购进数量 from 表1 a left join 表2 b on a.id=b.id left join 表3 c on a.id=c.id
yyhao 2003-05-01
  • 打赏
  • 举报
回复
刚才写错了,要得到的表中二月份购进量写错一个数,正确的是:

ID  材料名称   一月份购进量   二月份购进量
---- --------- ------------- ------------
A   笔      100        null
B 墨      80 50
C   纸      200 null
D   砚      null  30
jxc163 2003-05-01
  • 打赏
  • 举报
回复
select a.id,a.name,b.数量,c.数量 from 表1 a,表2 b,表3,c where (b.id=a.id) or (c.id=a.id)

如果不行的话,就加一个去除重复记录的DISN,记不清了。
pengdali 2003-05-01
  • 打赏
  • 举报
回复
select 表1.id,表1.材料名称,表2.购进数量,表3.购进数量 from 表1 left join 表2 on 表1.id=表2.id left join 表3 on 表1.id=表3.id
pengdali 2003-05-01
  • 打赏
  • 举报
回复
select * from 表1 left join 表2 on 表1.id=表2.id left join 表3 on 表1.id=表3.id

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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