
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.06.2007, 16:57
|
|||
|---|---|---|---|
Объединение нескольких запросов |
|||
|
#18+
Добрый день! Не могли бы вы помочь в решении одной задачи: Как в коде можно объединить несколько запросов (в которых меняются только условия) в один DataSet? К примеру один запрос такой: select count(t.dialed) as COUNT_OUT, sum(t.duration) as SUMMA_D_OUT, sum(t.in_balance_$) as SUMMA_BL from calls_all t where t.lcal_lcal_id = 39 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null А другой такой: select count(t.dialed) as COUNT_IN, sum(t.duration) as SUMMA_D_IN from calls_all t where t.lcal_lcal_id = 38 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null Заранее благодарю за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2007, 17:14
|
|||
|---|---|---|---|
Объединение нескольких запросов |
|||
|
#18+
не понял - нужно объеденить результаты выполнения 2-х запросов в одной DataTable? как можно объединить несколько запросов я не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2007, 21:54
|
|||
|---|---|---|---|
Объединение нескольких запросов |
|||
|
#18+
можно так: select count(t.dialed) as COUNT, sum(t.duration) as SUMMA, sum(t.in_balance_$) as SUMMA_BL from calls_all t where t.lcal_lcal_id = 39 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null UNION select count(t.dialed) as COUNT, sum(t.duration) as SUMMA from calls_all t where t.lcal_lcal_id = 38 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null или колонки должны быть разные? Вопрос уточните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.06.2007, 08:14
|
|||
|---|---|---|---|
Объединение нескольких запросов |
|||
|
#18+
Здесь Union не подойдет, потомучто колонки должны быть разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.06.2007, 13:17
|
|||
|---|---|---|---|
|
|||
Объединение нескольких запросов |
|||
|
#18+
select SUM(COUNT_OUT), SUM(COUNT_IN), SUM(SUMMA_D_OUT), SUM(SUMMA_D_IN), SUM(SUMMA_BL) from ( select decode(1,COUNT_OUT,0) as COUNT_OUT, decode(2,COUNT_OUT,0) as COUNT_IN, decode(1,SUMMA_D_OUT,0) as SUMMA_D_OUT, decode(2,SUMMA_D_OUT,0) as SUMMA_D_IN, SUM(SUMMA_BL) as SUMMA_BL from ( select 1 as no, count(t.dialed) as COUNT_OUT, sum(t.duration) as SUMMA_D_OUT, sum(t.in_balance_$) as SUMMA_BL from calls_all t where t.lcal_lcal_id = 39 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null union all select 2 as no, count(t.dialed) as COUNT_OUT, sum(t.duration) as SUMMA_D_OUT, 0 as SUMMA_BL from calls_all t where t.lcal_lcal_id = 38 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null ) a ) b ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.06.2007, 13:23
|
|||
|---|---|---|---|
|
|||
Объединение нескольких запросов |
|||
|
#18+
select SUM(COUNT_OUT), SUM(COUNT_IN), SUM(SUMMA_D_OUT), SUM(SUMMA_D_IN), SUM(SUMMA_BL) from ( select decode(COUNT_OUT,1,COUNT_OUT,0) as COUNT_OUT, decode(COUNT_OUT,2,COUNT_OUT,0) as COUNT_IN, decode(SUMMA_D_OUT,1,SUMMA_D_OUT,0) as SUMMA_D_OUT, decode(SUMMA_D_OUT,2,SUMMA_D_OUT,0) as SUMMA_D_IN, SUM(SUMMA_BL) as SUMMA_BL from ( select 1 as no, count(t.dialed) as COUNT_OUT, sum(t.duration) as SUMMA_D_OUT, sum(t.in_balance_$) as SUMMA_BL from calls_all t where t.lcal_lcal_id = 39 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null union all select 2 as no, count(t.dialed) as COUNT_OUT, sum(t.duration) as SUMMA_D_OUT, 0 as SUMMA_BL from calls_all t where t.lcal_lcal_id = 38 and t.start_time>=:START_DATE and t.start_time<=to_date(:END_DATE)+1 and t.err_code is null ) a ) b ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&mobile=1&tid=1352739]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 321ms |

| 0 / 0 |
