在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