![]() |
#1 |
NavAx
|
Пожалуйста разъясните смысл кода!!!
Встретил следующий запрос:
Выглядит примерно так: select sum(PostedQty), sum(PostedValue), from inventSum where inventSum.itemId == _itemId && inventSum.configId == _configId && inventSum.closed == NoYes::No join tableID from inventDim where (inventDim.InventDimId == inventDimId) && (inventDim.InventLocationId == inventDimCriteria.InventLocationId || ! inventDimParm.InventLocationIdFlag) && (inventDim.InventBatchId == inventDimCriteria.InventBatchId || ! inventDimParm.InventBatchIdFlag) && (inventDim.WMSLocationId == inventDimCriteria.WMSLocationId || ! inventDimParm.WMSLocationIdFlag) && (inventDim.WMSPalletId == inventDimCriteria.WMSPalletId || ! inventDimParm.WMSPalletIdFlag) && (inventDim.InventSerialId == inventDimCriteria.InventSerialId || ! inventDimParm.InventSerialIdFlag) && (inventDim.InventGTDId_RU == inventDimCriteria.InventGTDId_RU || ! inventDimParm.InventGTDIdFlag_RU); непонятен этот код: "join tableID from inventDim" |
|
![]() |
#2 |
Участник
|
предыдущих версиях, если указана агрегирующая функция у ведущего селекта, нельзя было писать "join myTable". Надо было обязательно указывать поле.
Поэтому писали "join myField from myTable". Смысловой нагрузки никакой не несет. Использовалось для того, чтобы обойти "особенность" компилятора. |
|
![]() |
#3 |
Участник
|
С аналогичным результатом можно было использовать exists join
|
|
![]() |
#4 |
----------------
|
Цитата:
Изначально опубликовано ANVA
С аналогичным результатом можно было использовать exists join Можно написать: select sum(PostedQty), sum(PostedValue), from inventSum group by ItemId where inventSum.itemId == _itemId && ... join inventDim ... |
|
![]() |
#5 |
Участник
|
Не факт, что будет тормозить. Надо прогнать в QA и посмотреть планы. Возможно, что запрос на exists join будет отрабатывать быстрее. Подтверждение тому я видел.
|
|