|
|
#1 |
|
Участник
|
Добрый день!
Есть запрос: SELECT ItemId, DatePhysical, TransType, TransRefId, StatusReceipt, StatusIssue, Qty, CostAmountPhysical, CostAmountPosted, CostAmountAdjustment FROM InventTrans WHERE ((ItemId = 0234530500)) AND ((DateFinancial>=14.01.08 AND DateFinancial<=16.01.08)) AND ((TransRefId = 139233)) JOIN configId, InventLocationId, InventGtdId_RU, inventBatchId FROM InventDim WHERE InventTrans.inventDimId = InventDim.inventDimId AND ((InventLocationId = 261_ГП11)) JOIN ItemId FROM InventTable WHERE InventTrans.ItemId = InventTable.ItemId EXISTS JOIN * FROM InventJournalTable WHERE InventTrans.TransRefId = InventJournalTable.JournalId проблема в следующем: без "EXISTS JOIN" он работает нормально, а ним не очень (вернее совсем не работает). Запись в InventJournalTable для JournalId = 139233 точно существует!!!Может кто-то попробовать мне объяснить, что я упускаю? Огромное спасибо
|
|
|
|
|
#2 |
|
MCITP
|
Поясните что значит "вообще не работает". Просто чтоб не было недопонимания.
![]() Вы ж понимаете, что в переменной InventJournalTable в любом случае не будет данных? Или же всё-таки весь запрос вообще перестает выдавать данные? (тогда навскидку могу предположить проблемы с выравниваением (или размером выравнивания) данных в это записи в поле InventJournalTable.JournalId)
__________________
Zhirenkov Vitaly |
|
|
|
|
#3 |
|
Участник
|
Цитата:
"вообще не работает".
. Цитата:
Или же всё-таки весь запрос вообще перестает выдавать данные?
![]() Цитата:
(или размером выравнивания) данных в это записи в поле InventJournalTable.JournalId
|
|
|
|
|
#4 |
|
Участник
|
мда, забыл сказать приложение AX3SP3CU1, SQL2000 SP3.
|
|
|
|
|
#5 |
|
MCITP
|
Ну это скорее экстроординарный случай, но и такое бывает.
Что я имел ввиду: Например поменяли размерность типа для поля InventJournalTable.JournalId с Х на Y. А т.к. у него стоит правое выравнивание, то слева все старые данные добиты пробелами до Х, а новые до Y. И ищется в этом селекте размером Y. И если ваша строка "старая" и "добита" до Х, то она не найдётся селектом. Ну и такие же проблемы могут возникнуть не только из-за изменения размера, а и из-за "внешнего вмешательства", тип например если извне строки неправильно вставляли и т.п.... Как-то вот так... Проверьте непосредственно в БД, что ваша строка лежит с правильными данными и выравниванием...
__________________
Zhirenkov Vitaly |
|
|
|
|
#6 |
|
MCITP
|
ну точнее я описал скорее общую проблему...
а в вашем случае надо убедиться что обе записи (InventTrans и InventJournalTable) в соответсвующих полях (transRefId и JournalId) имеют действительно строго одинаковые значения (с точностью до пробелов спереди). И ещё конечно же, надо чтоб они лежали в одной компании. ))
__________________
Zhirenkov Vitaly |
|
|
|
|
#7 |
|
Участник
|
Цитата:
И ещё конечно же, надо чтоб они лежали в одной компании.
))
|
|
|
|
|
#8 |
|
Участник
|
Попробуйте переписать запрос след. образом
select * from inventTrans exists join * from InventJournalTable join * from InventTable join * from InventDim |
|
|
|
|
#9 |
|
Участник
|
Цитата:
PHP код:
|
|
|
|
|
#10 |
|
Участник
|
Цитата:
С другой стороны, на Ms SQL вроде такие "изыски" не используются, но в любом случае, включите трассировку и посмотрите, какой именно запрос уходит на СУБД.
. По идее, если выравнивание в EDT стоит выравнивание влево - то нет, а вот если вправо...
|
|
|
|
|
#11 |
|
NavAx
|
Дело в вырвнивании
Помогите разобраться с QueryBuildDataSource Делайте запрос с использованием InventJournalTrans |
|
|
|
|
#12 |
|
MCITP
|
Да, согласен, моя вышеизложенная теория к данному случаю отношения не имеет (но по жизни встречается
).Дело просто в разном размере полей, выровненных вправо. Цитата:
С другой стороны, на Ms SQL вроде такие "изыски" не используются,
нужно переписывать запрос (см. предыдущий пост raz)
__________________
Zhirenkov Vitaly |
|
|
|
|
#13 |
|
Участник
|
kashperuk:
X++: select * from inventTrans exists join * from InventJournalTable join * from InventTable join * from InventDim __________________
|
|
|
|
|
#14 |
|
Участник
|
Цитата:
Делайте запрос с использованием InventJournalTrans
|
|
|