|
08.02.2006, 17:51 | #1 |
Moderator
|
Сравнение полей в запросе
Добрый вечер!
Хотел бы сравнивть в запросе два поля по абсолютной величине (inventJournalTrans.Qty[оно в рамках задачи всегда меньше нуля] и inventJournalTrans.QtyRegistered) Написал: PHP код:
Написал: PHP код:
Ну, второе еще понятно - заведомо. Но решения не нашел.. |
|
08.02.2006, 18:01 | #2 |
Участник
|
а так?
PHP код:
|
|
09.02.2006, 09:41 | #3 |
Moderator
|
Спасибо за советы -- сейчас пробую!
Цитата:
Сообщение от mit
а так?
2 Ivan Mischenko, AndyD Сейчас пробую. Спасибо! 2 Dron AKA andy У меня и на этот запрос ругается аналогично! |
|
09.02.2006, 10:47 | #4 |
----------------
|
Уже когда-то писал
PHP код:
|
|
09.02.2006, 10:55 | #5 |
Moderator
|
Работает!
|
|
09.02.2006, 10:57 | #6 |
----------------
|
Аналогично
PHP код:
|
|
08.02.2006, 18:13 | #7 |
NavAx
|
Попробуйте скобочек добавить... так вроде.
__________________
Особые лекарства... меня не прут!.. |
|
08.02.2006, 18:29 | #8 |
Участник
|
Во-первых,
X++: qbds = query.addDataSource(tableNum(InventJournalTrans),"InventJournalTrans"); В-третьих, слегка извращенно это получится так X++: qbrQty.value("((inventJournalTrans.JournalId == \"" + _inventJournalTable.JournalId + "\") && (inventJournalTrans.Qty - inventJournalTrans.Qty < inventJournalTrans.Qty + inventJournalTrans.QtyRegistered))"); X++: while select inventJournalTrans where inventJournalTrans.JournalId == _inventJournalTable.JournalId && inventJournalTrans.Qty - inventJournalTrans.Qty < inventJournalTrans.Qty + inventJournalTrans.QtyRegistered
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 08.02.2006 в 18:35. |
|
|
За это сообщение автора поблагодарили: DreamCreator (2). |
09.02.2006, 10:20 | #9 |
Moderator
|
Цитата:
Сообщение от AndyD
Во-вторых, JournalId надо тоже добавлять в расширенный диапазон, иначе соединение получается ч/з OR, а не AND
.. PS. Select можно построить по этому-же принципу X++: while select inventJournalTrans where inventJournalTrans.JournalId == _inventJournalTable.JournalId && inventJournalTrans.Qty - inventJournalTrans.Qty < inventJournalTrans.Qty + inventJournalTrans.QtyRegistered PHP код:
PHP код:
|
|
08.02.2006, 18:31 | #10 |
Moderator
|
Это что-то у вас с полем QtyRegistered не то. Если написать глупый запрос
Код: while select inventJournalTrans where inventJournalTrans.JournalId == _inventJournalTable.JournalId && - inventJournalTrans.Qty < inventJournalTrans.SalesAmount Во втором случае в скобках не нужно указывать "inventJournalTrans": PHP код:
__________________
Андрей. |
|
09.02.2006, 11:01 | #11 |
Участник
|
Это не надо. Уже включено в расширенный диапазон
qbds.addRange(fieldNum(InventJournalTrans,JournalId)).value(inventJournalTable.JournalId); Прошу прощения, перенос я вставил только для того, чтобы строка нормально читалась в браузере. На самом деле надо так X++: qbrQty.value("((inventJournalTrans.JournalId == " + "\"" + _inventJournalTable.JournalId + "\") && " + "(inventJournalTrans.Qty - inventJournalTrans.Qty < " + "inventJournalTrans.Qty + inventJournalTrans.QtyRegistered))"); Если IncompleteDelivery тоже должно быть ч/з AND, то его необходимо внести в расширенный Range
__________________
Axapta v.3.0 sp5 kr2 |
|
09.02.2006, 11:07 | #12 |
----------------
|
AndyD Не надо ничего добавлять в расширенный range. Надо просто его сделать по правильному полю и тогда все условия будут через AND
|
|
|
За это сообщение автора поблагодарили: axaLearner (2), DreamCreator (2), AndyD (2). |
09.02.2006, 11:17 | #13 |
Moderator
|
Оба варианта с query корректно сработали!
Wamr и AndyD спасибо и респект! |
|
Теги |
query, запрос (query) |
|
|