|
|
|
Помогите, пожалуйста, составить SQL-запрос
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, составить SQL-запрос. Очень нужно. Необходимо составить запрос, который поодсчитывает число записей для каждого типа устройств по данной Атс в течении каждого дня месяца, после этого полученные записи суммируются. Для примера возьмем 2 дня. Запрос: (select (case when a_data_gi.ats_tip='3-ГИ(ВУС)' then a_data_gi.ats_out else a_data_gi.ats_tip end)R23,(Count(a_data_general.device))R1, '0' R2 from a_data_general, a_data_gi where (a_data_general.ats='21') and (a_data_general.ats=a_data_gi.ats_in) and (a_data_general.d_in=a_data_gi.d_in)and (a_data_general.d_stativ=a_data_gi.d_stativ) and (a_data_general.device='3-ГИ') and (dt>='9.16.2002 9:00') and (dt<='9.16.2002 18:00') group by a_data_gi.ats_tip,a_data_gi.ats_out Union All select (case when a_data_gi.ats_tip='3-ГИ(ВУС)' then a_data_gi.ats_out else a_data_gi.ats_tip end)R23,'0'R1, (Count(a_data_general.device))R2 from a_data_general, a_data_gi where (a_data_general.ats='21') and (a_data_general.ats=a_data_gi.ats_in) and (a_data_general.d_in=a_data_gi.d_in)and (a_data_general.d_stativ=a_data_gi.d_stativ) and (a_data_general.device='3-ГИ') and (dt>='9.17.2002 9:00') and (dt<='9.17.2002 18:00') group by a_data_gi.ats_tip,a_data_gi.ats_out) , выполняется правильно и выдает результат: 3-ГИ(ВСС) 5 0 24 3 0 25 1 0 26 2 0 3-ГИ(ВСС) 0 3 24 0 5 29 0 2 Необходимо получить из этих данных такие: 3-ГИ(ВСС) 5 3 24 3 5 25 1 0 26 2 0 29 0 2 , т.е. суммировать данные по строчкам. Если взять запрос: select (case when a_data_gi.ats_tip='3-ГИ(ВУС)' then a_data_gi.ats_out else a_data_gi.ats_tip end),sum(R1),sum(R2) from a_data_gi, (select (case when a_data_gi.ats_tip='3-ГИ(ВУС)' then a_data_gi.ats_out else a_data_gi.ats_tip end)R23,(Count(a_data_general.device))R1, '0' R2 from a_data_general, a_data_gi where (a_data_general.ats='21') and (a_data_general.ats=a_data_gi.ats_in) and (a_data_general.d_in=a_data_gi.d_in)and (a_data_general.d_stativ=a_data_gi.d_stativ) and (a_data_general.device='3-ГИ') and (dt>='9.16.2002 9:00') and (dt<='9.16.2002 18:00') group by a_data_gi.ats_tip,a_data_gi.ats_out Union All select (case when a_data_gi.ats_tip='3-ГИ(ВУС)' then a_data_gi.ats_out else a_data_gi.ats_tip end)R23,'0'R1, (Count(a_data_general.device))R2 from a_data_general, a_data_gi where (a_data_general.ats='21') and (a_data_general.ats=a_data_gi.ats_in) and (a_data_general.d_in=a_data_gi.d_in)and (a_data_general.d_stativ=a_data_gi.d_stativ) and (a_data_general.device='3-ГИ') and (dt>='9.17.2002 9:00') and (dt<='9.17.2002 18:00') group by a_data_gi.ats_tip,a_data_gi.ats_out) Tab group by a_data_gi.ats_tip,a_data_gi.ats_out , выдает неправильный результат?? Где здесь в этом запросе ошибка? Как правильно написать данный запрос? Если можно на данном запросе. Структура таблицы a_data_gi: ats_in char(10) d_stativ char(10) d_in char(10) ats_out char(10) ats_tip char(10) Пример заполнения: 21 21 21 01 01 01 01 31 38 21 29 20 3-ГИ(ВСС) 3-ГИ(ВУС) 3-ГИ(ВУС) Структура таблицы a_data_general(из нее подсчитываются записи по device=3-ГИ) : ats varchar(50) dt datetime device varchar(10) uak_num smallint(2) memo varchar(1) R1 char(1) R2 char(1) .... R15 char(1) R16 char(1) d_stativ char(3) d_in char(3) status char(2) Пример заполнения: 21 9.17.2002 18:00 3-ГИ 1 а 2 2 .. 3 4 01 31 Ок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 09:02:01 |
|
||
|
Помогите, пожалуйста, составить SQL-запрос
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, составить SQL-запрос. Очень нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 12:12:02 |
|
||
|
Помогите, пожалуйста, составить SQL-запрос
|
|||
|---|---|---|---|
|
#18+
А может хранимую процедуру лучше сделать? Уж больно сложный запрос да и не мобильный он. (Вдруг устр-во добавится/исчезнет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 15:15:56 |
|
||
|
Помогите, пожалуйста, составить SQL-запрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext разве не проходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 15:27:23 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32061606&tid=1819266]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
87ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 344ms |

| 0 / 0 |
