07.11.2007, 12:25 | #1 |
Участник
|
Запрос
Подскажите как в одном запросе сделать сумму по разным статусам.
В моем примере я получаю сумму по статусам TOR_WorkGroup::KR,TP,SR и TPIR,я выделил их красным цветом. Возможно ли сделать чтобы для всех четырех статусов выводилась отдельная сумма и все это сделать за один запрос или цикл, как правильней сказать не знаю X++: select sum(TOR_QuantityOperation) from prodjournalroute where prodjournalroute.TransDate >= FromDate && prodjournalroute.TransDate <= ToDat join maxOf(RecId)from prodtable where prodtable.ProdId == prodjournalroute.ProdId join maxOf(RecId)from tor_Worktable where tor_Worktable.Code == prodTable.tor_WorkCode [COLOR="Red"] && tor_Worktable.WorkGroup == TOR_WorkGroup::KR && tor_Worktable.WorkGroup == TOR_WorkGroup::TR && tor_Worktable.WorkGroup == TOR_WorkGroup::SR && tor_Worktable.WorkGroup == TOR_WorkGroup::TPIR[/COLOR] join maxOf(RecId)from tor_ordersobj where tor_ordersobj.ProdId == prodtable.ProdId join maxOf(RecId)from tor_eo_table where tor_eo_table.EO_Id == tor_ordersobj.EOId && tor_eo_table.RAssetId == rassettable.AccountNum; |
|
07.11.2007, 13:18 | #2 |
Участник
|
Возможно.
Необходимо группировку добавить по этому самому WorkGroup (не осилил понять, почему они при этом называются статусами ) Тогда у вас вместо 1 записи получиться 4, с суммой по каждому из статусов |
|
07.11.2007, 13:33 | #3 |
Участник
|
Как я понял это надо применить group by.
и получится group by WorkGroup. Если Вам не сложно можете привести пример |
|
07.11.2007, 13:54 | #4 |
NavAx
|
X++: && tor_Worktable.WorkGroup == TOR_WorkGroup::KR && tor_Worktable.WorkGroup == TOR_WorkGroup::TR && tor_Worktable.WorkGroup == TOR_WorkGroup::SR && tor_Worktable.WorkGroup == TOR_WorkGroup::TPIR или я что то упустил или надо так X++: && (tor_Worktable.WorkGroup == TOR_WorkGroup::KR || tor_Worktable.WorkGroup == TOR_WorkGroup::TR || tor_Worktable.WorkGroup == TOR_WorkGroup::SR || tor_Worktable.WorkGroup == TOR_WorkGroup::TPIR) |
|
08.11.2007, 05:01 | #5 |
Участник
|
Как я понял Вы мне предлагаете применить логическое ИЛИ,в случае если хоть одно значение получает TRUE условие выполняется.
А меня интересует как в одном цикле или запросе получить одновременно четыре суммы по четырем параметрам TR,KR,SR,TPIR. |
|
08.11.2007, 09:28 | #6 |
Участник
|
Цитата:
&& tor_Worktable.WorkGroup == TOR_WorkGroup::KR && tor_Worktable.WorkGroup == TOR_WorkGroup::TR && tor_Worktable.WorkGroup == TOR_WorkGroup::SR && tor_Worktable.WorkGroup == TOR_WorkGroup::TPIR
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
08.11.2007, 11:01 | #7 |
NavAx
|
Цитата:
X++: select sum(TOR_QuantityOperation) from prodjournalroute where prodjournalroute.TransDate >= FromDate && prodjournalroute.TransDate <= ToDat join prodtable where prodtable.ProdId == prodjournalroute.ProdId join tor_Worktable group by WorkGroup where tor_Worktable.Code == prodTable.tor_WorkCode && (tor_Worktable.WorkGroup == TOR_WorkGroup::KR || tor_Worktable.WorkGroup == TOR_WorkGroup::TR || tor_Worktable.WorkGroup == TOR_WorkGroup::SR || tor_Worktable.WorkGroup == TOR_WorkGroup::TPIR) join tor_ordersobj where tor_ordersobj.ProdId == prodtable.ProdId join tor_eo_table where tor_eo_table.EO_Id == tor_ordersobj.EOId && tor_eo_table.RAssetId == rassettable.AccountNum; |
|