A:SELECT distinct OI.OrderNo, OI.OrderItemNo, OI.OrderAmount, ISNULL(OI.UnitAmount,0), OI.OrderAmount - ISNULL(OI.UnitAmount,0) AS DiffAmount,
OI.ID, OI.SapOrderNo, OI.MOQ, OI.DisCount, OI.DealerCode, OI.ComDeliverDate, OI.ComOrderDate, OI.ComDeliverCycle,
OI.CommodityNo, OI.SubAmount , T.IsCosted
FROM OrderItmes OI
LEFT JOIN
(
SELECT E.IsCosted,EI.OrderItemNo
FROM dbo.EnterStore E
INNER JOIN dbo.EnterStoreItem EI ON E.EnterStoreNo = EI.EnterStoreNo
) T
ON OI.OrderItemNo = T.OrderItemNo
B:SELECT distinct OI.OrderNo, OI.OrderItemNo, OI.OrderAmount, ISNULL(OI.UnitAmount,0), OI.OrderAmount - ISNULL(OI.UnitAmount,0) AS DiffAmount,
OI.ID, OI.SapOrderNo, OI.MOQ, OI.DisCount, OI.DealerCode, OI.ComDeliverDate, OI.ComOrderDate, OI.ComDeliverCycle,
OI.CommodityNo, OI.SubAmount
FROM OrderItmes OI
A 为什么比 B 查询出来的记录多些,求指教
OI.ID, OI.SapOrderNo, OI.MOQ, OI.DisCount, OI.DealerCode, OI.ComDeliverDate, OI.ComOrderDate, OI.ComDeliverCycle,
OI.CommodityNo, OI.SubAmount , T.IsCosted
FROM OrderItmes OI
LEFT JOIN
(
SELECT E.IsCosted,EI.OrderItemNo
FROM dbo.EnterStore E
INNER JOIN dbo.EnterStoreItem EI ON E.EnterStoreNo = EI.EnterStoreNo
) T
ON OI.OrderItemNo = T.OrderItemNo
B:SELECT distinct OI.OrderNo, OI.OrderItemNo, OI.OrderAmount, ISNULL(OI.UnitAmount,0), OI.OrderAmount - ISNULL(OI.UnitAmount,0) AS DiffAmount,
OI.ID, OI.SapOrderNo, OI.MOQ, OI.DisCount, OI.DealerCode, OI.ComDeliverDate, OI.ComOrderDate, OI.ComDeliverCycle,
OI.CommodityNo, OI.SubAmount
FROM OrderItmes OI
A 为什么比 B 查询出来的记录多些,求指教
(
SELECT E.IsCosted,EI.OrderItemNo
FROM dbo.EnterStore E
INNER JOIN dbo.EnterStoreItem EI ON E.EnterStoreNo = EI.EnterStoreNo
) T
你这里面与 OrderItmes 是1对多的当然就可能多了,
我是左边有的就显示对应的 T.IsCosted ,否则 T.IsCosted 就显示 null
但是记录数应该还是 左边的记录数啊现在如果不增加记录数,依然要显示 T.IsCosted,应该怎么写啊