当前位置: 代码迷 >> PB >> 三(或多)表连接后 where 怎么只控制部分表的记录数据有关问题
  详细解决方案

三(或多)表连接后 where 怎么只控制部分表的记录数据有关问题

热度:41   发布时间:2016-04-29 10:01:49.0
三(或多)表连接后 where 如何只控制部分表的记录数据问题
在PB数据窗口中我用左连接连了三个表,我想通过where语句控制后面两个表的记录数据,怎么写where语句?

比如以下三表:
a表内容如下

客户id 客户名
“001” 公司A
“002” 公司B
“003” 公司C
“004” 公司D

b表内容如下

客户id 订货数量
“002” 20
“004” 60

c表的内容如下

客户id   发货数量
“002” 20

我想做到的是数据窗口中三表连接后   以   客户id   客户名称     订货数量     发货数量   的格式显示,   如何能做到时
A表的记录数显示的基础上,   根据订货数据、发货数据等条件改变后面的记录数?


------解决方案--------------------
我理解的就是这样的,不知道是不是你要的.

SQL code
declare @TA TABLE (IDa varchar(5),cn VARCHAR(20))DECLARE @TB TABLE (IDa varchar(5),dh int)DECLARE @TC TABLE (IDa varchar(5),fh int)INSERT INTO @TA SELECT '001','公司A' UNION allSELECT '002','公司B' UNION allSELECT '003','公司C' UNION allSELECT '004','公司D' INSERT INTO @TB SELECT '002',20 UNION allSELECT '004',60INSERT INTO @TC SELECT '002',20 union allselect '003',10--select * from @ta--左外联接SELECT A.IDA as 客户ID,A.cn as 客户名称,isnull(B.dh,0) as 订货数量,isnull(c.fh,0) as 发货数量 FROM @TA A LEFT JOIN @TB B ON A.IDA=B.IDa LEFT join @TC C ON a.ida = c.ida/*(所影响的行数为 4 行)(所影响的行数为 2 行)(所影响的行数为 2 行)客户ID  客户名称                 订货数量        发货数量        ----- -------------------- ----------- ----------- 001   公司A                  0           0002   公司B                  20          20003   公司C                  0           10004   公司D                  60          0(所影响的行数为 4 行)*/
------解决方案--------------------
给你一个小李子 :

Select *
from A a left Join (select b.id ,c.name ,c.age from b ,c where b.id = c.id ) D
On a.id = D.Id 
  相关解决方案