|
06.12.2012, 16:39 | #1 |
Участник
|
Проясните запрос
Часто встречаю следующий или похожий код
X++: select sum(Qty) from inventTrans group by ItemId where inventTrans.DatePhysical >= dateStart && inventTrans.DatePhysical <= dateEnd && inventTrans.ItemId == inventTable.ItemId && (InventTrans.StatusIssue == StatusIssue::Sold || InventTrans.StatusReceipt == StatusReceipt::Purchased) join inventDim where inventDim.inventDimId == InventTrans.inventDimId && inventDim.InventLocationId == "12345"; Ведь для ItemId существует множество inventDimId, в результате чего inventDim будет отбираться по случайному InventTrans.inventDimId
__________________
Axapta 3.0, Build #1951.17, SP1 Последний раз редактировалось Samuel; 06.12.2012 в 16:41. |
|
06.12.2012, 16:42 | #2 |
Участник
|
Нет не будет. Порядок выполнения такого запроса следующий. Сначала соединение, а уже потом группировка.
Можете в таком запросе безболезненно заменить "join inventDim" на "exists join inventDim" P.S.: cм.также Порядок выполнения GroupBy и Exists Join для временных таблиц Последний раз редактировалось S.Kuskov; 06.12.2012 в 16:47. |
|
|
За это сообщение автора поблагодарили: Samuel (1), Deepoint (1). |