你有的子查询中可能返回多行。解决办法就是所有的子查询中都加上top 1eg: select top 1 GAYarnQuality.YQName from GAYarnQuality where GAYarnQuality.YQCode=a.cInvCode
要是用left join 怎么用的?请指教!
select a.cPOCode,GAYarnQuality.YQName,a.ColorCode,GAColorCode.ColorName,a.dRequestDeliDate, DyProcessList.BTime1,DyProcessList.ETime1,saDispatchlist.dDate, a.iQuantity,DyProcessList.InVatQty as InVatQty,DyProcessList.OutVatQty as OutVatQty, saDispatchlists.iQuantity as deliveryQty,DyProcessList.OutVatQty/a.iQuantity*100 as DyCompleteRate from POOrders a left join GAInventory on GAInventory.cPOCode=a.cPOCode left join GAYarnQuality on GAYarnQuality.YQCode=a.cInvCode left join GAColorCode on GAColorCode.ColorCode=a.ColorCode left join DyProcessList on DyProcessList.cInvCode in (select GAInventory.cInvCode from GAInventory where a.cInvCode=GAInventory.YQCode) left join saDispatchlists on saDispatchlists.cInvCode in (select GAInventory.cInvCode from GAInventory where a.cInvCode=GAInventory.YQCode) left join saDispatchlist on saDispatchlist.cDLCode=saDispatchlists.cDLCode这样出现好多重复的啊!
select top 1 GAYarnQuality.YQName from GAYarnQuality where GAYarnQuality.YQCode=a.cInvCode
DyProcessList.BTime1,DyProcessList.ETime1,saDispatchlist.dDate,
a.iQuantity,DyProcessList.InVatQty as InVatQty,DyProcessList.OutVatQty as OutVatQty,
saDispatchlists.iQuantity as deliveryQty,DyProcessList.OutVatQty/a.iQuantity*100 as DyCompleteRate
from POOrders a
left join GAInventory on GAInventory.cPOCode=a.cPOCode
left join GAYarnQuality on GAYarnQuality.YQCode=a.cInvCode
left join GAColorCode on GAColorCode.ColorCode=a.ColorCode
left join DyProcessList on DyProcessList.cInvCode in (select GAInventory.cInvCode from GAInventory where a.cInvCode=GAInventory.YQCode)
left join saDispatchlists on saDispatchlists.cInvCode in (select GAInventory.cInvCode from GAInventory where a.cInvCode=GAInventory.YQCode)
left join saDispatchlist on saDispatchlist.cDLCode=saDispatchlists.cDLCode这样出现好多重复的啊!