SELECT A.AutoIn, A.Code, A.Name,
B.AutoIn , B.Code, B.name, B.SUPCODE,
C.AutoIn, C.Code, C.Name, C.BuildingType,
C.Remark, C.Isvalid, C.HouseArea, C.Status1,
C.VacantFlg, C.STATUS2
FROM (SELECT BAS_BUILD.AutoIn , BAS_BUILD.Code , BAS_BUILD.Name
FROM BAS_BUILD
WHERE BAS_BUILD.BuildingType = '楼盘') A,
(SELECT BAS_BUILD.AutoIn , BAS_BUILD.Code , BAS_BUILD.Name , BAS_BUILD.SUPCODE
FROM BAS_BUILD
WHERE BAS_BUILD.BuildingType = '楼栋') B,
(SELECT BAS_BUILD.AutoIn, BAS_BUILD.Code, BAS_BUILD.Name, BAS_BUILD.BuildingType, BAS_BUILD.SUPCODE SUPCODE,
BAS_BUILD.Remark, BAS_BUILD.Isvalid, BAS_BUILD.HouseArea, BAS_BUILD.Status1,
BAS_BUILD.VacantFlg, BAS_BUILD.STATUS2
FROM BAS_BUILD
WHERE BAS_BUILD.BuildingType = '房间') C
WHERE C.SUPCODE = B.AutoIn AND B.SUPCODE = A.AutoIn
这段sql做的标准数据集不能添加数据字段,但是测试里面可以查出数据来
另外我原来做过一个数据集也是嵌套sql,确可以的:
SELECT F.MAINID MAINID, F.GOODSID GOODSID, F.LOCATION LOCATION, F.BARGINPRICE BARGINPRICE, F.CHANGETYPE CHANGETYPE, F.AUTOIN AUTOIN, F.GOODSNO GOODSNO , F.SUPPLIERID SUPPLIERID, F.SUPPLIERNAME SUPPLIERNAME, F.GOODSTYPE GOODSTYPE, F.CNNAME CNNAME, F.SPEC SPEC, F.BRAND BRAND, F.STYLE STYLE, (in_qty - orginal_qty) in_qty , F.out_qty out_qty, F.orginal_qty orginal_qty, F.current_qty current_qty
FROM (SELECT DISTINCT A.MAINID, A.GOODSID, A.LOCATION, A.BARGINPRICE, A.CHANGETYPE, A.AUTOIN, A.GOODSNO , A.SUPPLIERID, A.SUPPLIERNAME, A.GOODSTYPE, A.CNNAME, A.SPEC, A.BRAND, A.STYLE, A.QTY in_qty, ISNULL(B.QTY ,0) out_qty, ISNULL(C.QTY ,0) orginal_qty, ISNULL(D.QTY ,0) current_qty FROM
(SELECT EXP_ORDERRENT.ContractID, EXP_ORDERRENT_GOODS.MAINID, EXP_ORDERRENT_GOODS.GOODSID, EXP_ORDERRENT_GOODS.LOCATION, EXP_ORDERRENT_GOODS.QTY, EXP_ORDERRENT_GOODS.BARGINPRICE, EXP_ORDERRENT_GOODS.CHANGETYPE, BAS_GOODS.AUTOIN, BAS_GOODS.GOODSNO, BAS_GOODS.SUPPLIERID, BAS_GOODS.SUPPLIERNAME, BAS_GOODS.GOODSTYPE, BAS_GOODS.CNNAME, BAS_GOODS.SPEC, BAS_GOODS.BRAND, BAS_GOODS.STYLE
FROM EXP_ORDERRENT_GOODS, BAS_GOODS, EXP_ORDERRENT
WHERE EXP_ORDERRENT_GOODS.GOODSID = BAS_GOODS.AUTOIN and EXP_ORDERRENT_GOODS.CHANGETYPE = '1' and EXP_ORDERRENT.AutoIn =EXP_ORDERRENT_GOODS.mainid) A LEFT JOIN
(SELECT EXP_ORDERRENT.ContractID, EXP_ORDERRENT_GOODS.MAINID, EXP_ORDERRENT_GOODS.GOODSID, EXP_ORDERRENT_GOODS.LOCATION, EXP_ORDERRENT_GOODS.QTY, EXP_ORDERRENT_GOODS.BARGINPRICE, EXP_ORDERRENT_GOODS.CHANGETYPE, BAS_GOODS.AUTOIN, BAS_GOODS.GOODSNO, BAS_GOODS.SUPPLIERID, BAS_GOODS.SUPPLIERNAME, BAS_GOODS.GOODSTYPE, BAS_GOODS.CNNAME, BAS_GOODS.SPEC, BAS_GOODS.BRAND, BAS_GOODS.STYLE
FROM EXP_ORDERRENT_GOODS, BAS_GOODS, EXP_ORDERRENT
WHERE EXP_ORDERRENT_GOODS.GOODSID = BAS_GOODS.AUTOIN and EXP_ORDERRENT_GOODS.CHANGETYPE = '2' and EXP_ORDERRENT.AutoIn =EXP_ORDERRENT_GOODS.mainid) B ON A.GOODSID = B.GOODSID AND A.MAINID = B.MAINID LEFT JOIN
(SELECT EXP_RENTCONTRACT_GOODS.GOODSID, EXP_RENTCONTRACT_GOODS.QTY, EXP_RENTCONTRACT_GOODS.MAINID
FROM EXP_RENTCONTRACT_GOODS) C ON A.GOODSID = C.GOODSID AND A.ContractID = C.MAINID LEFT JOIN
(SELECT EXP_GOODS_DETAIL.CONTRACTID, EXP_GOODS_DETAIL.GOODSID, EXP_GOODS_DETAIL.QTY
FROM EXP_GOODS_DETAIL) D ON A.CONTRACTID = D.CONTRACTID AND A.GOODSID = D.GOODSID) F
不知道是什么原因
|