powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Написание запроса SQL
8 сообщений из 8, страница 1 из 1
Написание запроса SQL
    #39490127
vanchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, недавно стал разбираться в написании запросов. никто не подскажет следующее:
Имеется таблица вида
filial||order_type||date

Как написать запрос, чтобы у каждого филиала была написана услуга и их количество(в таблице всего 4 типа услуг)
filial||order_type1_count||order_type1_count2||order_type1_count3||order_type1_count4

Помогите пожалуйста((
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39490176
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
select filial,
count(case when order_type=1 then order_type end) as order_type1,
count(case when order_type=2 then order_type end) as order_type2,
...
from T
group by filial
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39490273
vanchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,

Спасибо большое!!
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39490287
vanchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,

По какой-то причине количество посчитал в разы меньше чем должен был(
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39490300
vanchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,

SELECT филиал,
COUNT(case when тип = 'Услуга' then тип end ) as order1,
COUNT(case when тип = 'Личная консультация' then тип end ) as order2,
COUNT(case when тип = 'Консультация по интернету' then тип end ) as order3,
COUNT(case when тип = 'Телефонная консультация' then тип end ) as order4,
COUNT(case when тип = 'Платная услуга' then тип end ) as order5
FROM(
SELECT
AVG(EXTRACT(EPOCH FROM o.order_date AT TIME ZONE 'UTC')) / 10000000000 AS d,
to_char(o.order_date, 'dd.mm.yyyy') AS дата,
COUNT(*) AS заявления,
substring(m.title FROM 0 FOR 48) AS филиал,
substring(u.title FROM 0 FOR 48) AS оператор,
substring(o.service_title FROM 0 FOR 48) AS услуга,
o.order_type as тип
FROM smartcenterorder o, smartcentermfc m, smartcenteruser u
WHERE
o.order_date BETWEEN '2017-04-01' AND '2017-04-02'
GROUP BY дата, филиал, оператор, услуга,тип
) as fo
GROUP BY филиал
ORDER BY order1 DESC

в чем может быть ошибка?( да и select в selecte это плохо(
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39490500
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы в подзапросе (который тут рядом не стоял по-хорошему) сворачиваете данные по полю тип, а потом пытаетесь узнать, а почему их стало меньше
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39490510
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и в подзапросе чушь какая-то: там декартово произведение, связей между таблицами нет
...
Рейтинг: 0 / 0
Написание запроса SQL
    #39571518
Nikiforka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я скоро буду учить запросы на курсах подготовки. Думаю ничего сложного не будет. Если судить по прошлым теммам
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Написание запроса SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]