问一个多表查询的问题

pgz_007 2008-09-11 11:33:55
有下面三个表,每个表的第一项是主键。

用料用途项目表(project):
项目编号(xmbhid)、项目名称(xmmc)

出库表(outbill): (特例:当出库单是退料单的时候,领用项目这列就是退料单所对应的领料单号)
出库单号(outbhid)、领用项目(xmbhid)、出库单类别(Type:0代表领料、1代表退料、9代表作废的单)

出库明细表(outdetail):
出库单号(outbhid)、材料编号(clbhid)、出库数量(outnumber:正数代表领料、负数代表退料)

-----------------------------------------------
我知道outbill表有点冗余,但为了表尽可能少,没办法,何况数据量不是很大。一个项目可以有多个领料或者退料单,但一个出库单只能对应一个项目。一个领料单可以有多个退料单,但一个退料单只能对应一个领料单。

问题提出:
我想做某个项目总用料统计报表:
select clbhid,sum(outnumber) from outdetail left join outbill on outbill.outbhid=outdetail.outbhid where outbill.type<>'9' and outbill.xmbhid=:某项目编号(参数)

但这样不行,因为出库退料单的xmbhid对应的是某领料单号(outbhid,type=0)。如果没有这样对应的话上面这个查询是可行的。请问这个问题能用一个sql语句搞定吗?
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangCK 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dawugui 的回复:]
引用 2 楼 chuifengde 的回复:
没弄明白

你都没弄明白呀?我也就不看了,吃饭.
[/Quote]
dawugui 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chuifengde 的回复:]
没弄明白
[/Quote]
你都没弄明白呀?我也就不看了,吃饭.
chuifengde 2008-09-11
  • 打赏
  • 举报
回复
没弄明白
wanghao3616 2008-09-11
  • 打赏
  • 举报
回复
3表连接 select * from 表1 join 表2 on 表1.字段=表2.字段 join 表3 on 表1.字段=表3.字段
hery2002 2008-09-11
  • 打赏
  • 举报
回复
JOIN~

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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