Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Группировка по дням недели  [new]
Алекс_1981
Member

Откуда:
Сообщений: 20
Думаю, что распространенная задача, но не нашел решения.
Есть таблица с полями "Id_Klient" и "Data", в которых информация о клиенте и дата его обслуживания.
Пользователю нужно вывести таблицу из 8 столбцов: Клиент, Понедельник, Вторник, Ср, и т.д.
И показать сколько раз клиенты были обслужены в разрезе дней недели.
Помогите скриптом для MS SQL 2014
8 фев 17, 18:42    [20194468]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по дням недели  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Алекс_1981,
первое что нагуглил, только у вас COUNT и можно Datename на DATEPART(weekday,Date)
SELECT location, 
       [Saturday], 
       [Sunday], 
       [Monday], 
       [Tuesday], 
       [Wednesday], 
       [Thursday], 
       [Friday] 
FROM   (SELECT COST, 
               location, 
               Datename(weekday, receiptdate) DAY 
        FROM   @reporting 
        WHERE  location NOT IN ( 'Building01', 'Building02', '' )) p 
      PIVOT ( 
        SUM (COST) 
        FOR DAY IN ( [Saturday], [Sunday], [Monday], [Tuesday], [Wednesday], 
       [Thursday], [Friday]) ) pvt 
8 фев 17, 18:46    [20194485]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по дням недели  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SELECT
 Id_Klient
,[Понедельник]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 0 THEN 1 ELSE 0 END)
,[Вторник]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 1 THEN 1 ELSE 0 END)
,[Среда]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 2 THEN 1 ELSE 0 END)
,[Четверг]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 3 THEN 1 ELSE 0 END)
,[Пятница]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 4 THEN 1 ELSE 0 END)
,[Суббота]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 5 THEN 1 ELSE 0 END)
,[Воскресенье]=SUM(CASE DATEDIFF(DAY,0,Data)%7 WHEN 6 THEN 1 ELSE 0 END)
FROM T
GROUP BY Id_Klient;
9 фев 17, 10:51    [20195902]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить