爲什麼其中一個查詢可以工作而另一個卻不工作?我編寫了正在運行的查詢,然後將該表臨時創建,並且必須將其重寫爲在外部具有臨時表。在查詢中混合使用臨時表和實際表
這是表中的數據:
tmpTASItemQtyInventDim:
|ItemId | InventDimId | InventQty | |-------|--------------|-----------| |73016 | Dim 11542913 | 0 |
SalesLine:
|Sales Id |Line No | ItemId | InventDimId | SalesQty | |------------|--------|--------|--------------|-----------| |SO120036796 | 1| 73016 | Dim 11542913 | 2 |
不起作用:
select firstonly tmpTASItemQtyInventDim
join itemId, InventDimId, sum(salesQty) from salesLine
group by itemId, InventDimId
where salesLine.SalesId == 'SO120036796' &&
tmpTASItemQtyInventDim.ItemId == salesLine.ItemId &&
tmpTASItemQtyInventDim.InventDimId == salesLine.InventDimId &&
tmpTASItemQtyInventDim.InventQty < salesLine.SalesQty;
if (tmpTASItemQtyInventDim.ItemId)
info("Insufficient Qty");
else
info("Good qty");
作品:
select firstonly itemId, InventDimId, sum(salesQty) from salesLine
group by itemId, InventDimId
where salesLine.SalesId == 'SO120036796'
exists join tmpTASItemQtyInventDim
where tmpTASItemQtyInventDim.ItemId == salesLine.ItemId &&
tmpTASItemQtyInventDim.InventDimId == salesLine.InventDimId &&
tmpTASItemQtyInventDim.InventQty < salesLine.SalesQty;
if (salesLine.ItemId)
info("Insufficient Qty");
else
info("Good Qty");
雙方應輸出Insufficient Qty
,而是先說Good Qty
。
太棒了!沒有完全理解爲什麼我需要這樣做,但它的工作原理。 –
我認爲它是因爲沒有group by的查詢等同於'code'從tmpTASItemQtyInventDim選擇SalesLine.ItemId,SalesLine.InventDimId內部加入salesLine ON tmpTASItemQtyInventDim.ItemId == salesLine.ItemId和 tmpTASItemQtyInventDim.InventDimId == salesLine.InventDimId。 ...'代碼'如果「你的工作不正常」測試SalesLine.ItemId它認爲會產生正確的結果 –