07.10.2013, 10:50 | #1 |
Участник
|
Вложенный запрос SQL с помощью великого Query
Доброе утро, уважаемые разработчики!
Второй день пытаюсь сообразить, как реализовать следующую проблему: Имею запрос на T-SQL, запрос вложенный, хочу его прикрутить к моему Query АОТ-овскому. Если подробнее: нужно производить сортировку по дате внутри груп, которые были сгруппированные по номенклатуре. Если сделать сортировку Order by по номенклатуре, а потом по дате - будет неккоректно отображать, порядок сортировки пробовал менять - не подходит. Подсказал коллега, что нужно смотреть в сторону составного запроса(Composite Query). Только вот как его полноценно использовать в данной ситуации - я пока не могу понять. Составной запрос пробовал делать по данной статье equalized: Dynamics Ax composite queries Либо как вариант - кодом сделать данную операцию что ли... Подскажите, в какую сторону смотреть. Спасибо заранее. С уважением
Последний раз редактировалось user_ax; 07.10.2013 в 10:54. |
|
07.10.2013, 11:25 | #2 |
Участник
|
|
|
07.10.2013, 11:33 | #3 |
Участник
|
Да, конечно.
Группировка во внутреннем запросе идёт по ItemId А во внешнем запросе идёт сортировка по itemid и invoicedate. Надеюсь понятно сказал Вот запрос, результат которого на скриншоте: X++: SELECT * from ( select vs.ITEMID [ITEMID2], vi.PURCHID [PURCHID], vi.INVOICEDATE [INVOICEDATE2] from VENDSPLISTTRANS as vs join VENDSPLISTJOUR as vj on vs.INTERNALSP = vj.INTERNALSP left join VENDINVOICETRANS as vi on vs.INTERNALSP = vi.INTERNALSP and vs.ITEMID = vi.ITEMID join RCONTRACTTABLE as r on r.RCONTRACTACCOUNT = vj.RCONTRACTACCOUNT join INVENTTABLE as it on it.ITEMID = vs.ITEMID where vj.SPDATE between '2013-09-25' and '2013-10-02' group by vs.itemid, vi.PURCHID, vi.INVOICEDATE )as temp order by temp.ITEMID2, temp.INVOICEDATE2 |
|
07.10.2013, 12:23 | #4 |
Участник
|
Цитата:
Код: group by vs.itemid, vi.INVOICEDATE, vi.PURCHID |
|
07.10.2013, 12:37 | #5 |
Участник
|
Цитата:
А вот если сгруппировать по itemid а потом по invoicedate получается по-моему то, что нужно! Сейчас попробую query аотовскиий переделать. |
|
07.10.2013, 12:39 | #6 |
Участник
|
Думается, автору мешает PurchId, из-за которого он не может как следует отсортировать данные по дате накладной. Скорее всего это каприз пользователей, которые не в курсе, что аксапта не всё умеет делать, например вложенные запросы.
Еще не очень понятно, зачем автор прикрутил InventTable и RContractTable.
__________________
// no comments |
|
07.10.2013, 12:41 | #7 |
Участник
|
Цитата:
Сообщение от dech
Думается, автору мешает PurchId, из-за которого он не может как следует отсортировать данные по дате накладной. Скорее всего это каприз пользователей, которые не в курсе, что аксапта не всё умеет делать, например вложенные запросы.
Еще не очень понятно, зачем автор прикрутил InventTable и RContractTable. И в группировке кроме этих 3-х полей ещё 10 Но я забыл, что от позиции полей при написании группировки может менятся конечный результат. А пользователи да, капризные... |
|
07.10.2013, 12:49 | #8 |
Участник
|
Query возвращает корректный запрос, согласно требованиям, а в отчёт выводится не совсем корректно, буду смотреть, что не так.
В любом случае, спасибо Вам, S.Kuskov, и Вам, dech, за Ваше потраченное время! |
|
07.10.2013, 12:59 | #9 |
Участник
|
Попробуйте такой запрос (я тут правда успел убрать те 2 таблицы, которые посчитал ненужными):
X++: select ITEMID from VENDSPLISTTRANS group by ITEMID join VENDSPLISTJOUR where VENDSPLISTTRANS.INTERNALSP == VENDSPLISTJOUR.INTERNALSP and VENDSPLISTJOUR.SPDATE >= 25\09\2013 and VENDSPLISTJOUR.SPDATE < 02\10\2013 outer join PURCHID, INVOICEDATE from VENDINVOICETRANS where VENDSPLISTTRANS.INTERNALSP == VENDINVOICETRANS.INTERNALSP and VENDSPLISTTRANS.ITEMID == VENDINVOICETRANS.ITEMID group by INVOICEDATE, PURCHID
__________________
// no comments |
|
07.10.2013, 14:00 | #10 |
Участник
|
dech, я этот же запрос сделал через Query, спасибо Вам!
|
|
Теги |
composite query, query, составной запрос sql |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|