Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

Помогите составить запрос или подскажите что другое   Найти похожие ветки 

 
Megabyte ©   (2006-11-08 17:37) [0]

База: "ремонт телефонов".
Есть таблица Repair_progress, куда заносятся этапы ремонта телефона: переход на каждый этап - это новая запись.
Также у каждого ремонта(не этап, а ремонт конкретного телефона) есть уникальный идентификатор Repair_ID.
Есть поле, кот. показывает, на каком этапе находится телефон: Repair_State_ID.
Мне надо сделать запрос, в котором выдать, сколько cделал за сегодня конкретный человек. А также суммировать количество для группы(конкретная спеуиальность: техники-ремонтники, бригадиры, техник входного контроля).
Признак того, что телефон починен - это отгружен на склад: Repair_State_ID = 11.
user_link_group - связь специальности и логина пользователя.
right_group - специальности.
7000, 17000, 26000, 3000, 10000, 9000 - нужные мне специальности.
Я могу пока только сделать это в 2-х запросах:
Для каждого человека:
select G.group_title, L.login, count(distinct P.repair_progress_id)
from repair_progress P, repair_progress R, user_list L, right_group G, user_link_group Gl
where (P.responsible_personal_id = L.personal_id) and (P.is_delete > 0) and
(R.repair_state_id = 11) and (P.repair_id = R.repair_id) and
(cast(P.progress_timestamp as date) = current_date)
and (L.User_List_id = Gl.user_list_id) and (G.right_group_id = Gl.right_group_id)
and (L.user_list_id = any(
select Lg.user_list_id
from user_link_group Lg
where Lg.right_group_id in (7000, 17000, 26000, 3000, 10000, 9000)))
group by G.group_title, L.login

Для группы:
select G.group_title, count(distinct P.repair_progress_id)
from repair_progress P, repair_progress R, user_list L, right_group G,
user_link_group Gl
where (P.responsible_personal_id = L.personal_id) and (P.is_delete > 0) and
(R.repair_state_id = 11) and (P.repair_id = R.repair_id) and
(cast(P.progress_timestamp as date) = current_date)
and (L.User_List_id = Gl.user_list_id) and (G.right_group_id = Gl.right_group_id)
and (L.user_list_id = any(
select Lg.user_list_id
from user_link_group Lg
where Lg.right_group_id in (7000, 17000, 26000, 3000, 10000, 9000)))
group by G.group_title

Union"ом не могу возпользоваться, т.к. разное количество полей.
А хотелось бы в идеале получить такое, если это возможно вообще:
техник-ремонтник Иванов 6
техник-ремонтник Петров 8
техник-ремонтник Сидоров 12
                                      26
бригадир Вова 20
бригадир Вася 30
                    50

и т.д.
Т.е. как бы двойная группировка: сначала по логину, а потом для группы логинов.


 
ANB ©   (2006-11-08 18:12) [1]


> G.group_title, L.login

Склей эти 2 поля в одно и сделай union all


 
evvcom ©   (2006-11-08 19:13) [2]

Или для группы:
select G.group_title, null, count(distinct P.repair_progress_id)
и опять же union all


 
Megabyte ©   (2006-11-09 09:18) [3]

спасибо.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
15-1168296414
SSE
2007-01-09 01:46
2007.01.28
С каких процессоров началсь поддержка SSE1 ?


15-1167870340
Tirael
2007-01-04 03:25
2007.01.28
подскажите прогу для работы с ком портом


2-1168689716
Garacio
2007-01-13 15:01
2007.01.28
Поиск в поиске


2-1168723096
DiX
2007-01-14 00:18
2007.01.28
Отправка почты


11-1146386530
gugua
2006-04-30 12:42
2007.01.28
Ansi сортировка в PFastStrListEx и PStrList.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский