cgprakash Ответов: 1

Sql-запрос для получения данных из таблицы ежеквартально за год.


Рассмотрим таблицу, содержащую список сотрудников и продаж, выполненных сотрудниками, вопрос в том, что мне нужно отобразить их детали продаж в зависимости от даты, т. е. на квартальной основе. (все четыре квартала в году).


Например:
Date        | EmpName  | ProductSell
--------------------------------------------- 
1st Quarter | A        |    3
            | B        |    6
----------------------------------------------
2nd Quarter | C        |    12 
-----------------------------------------------

Пожалуйста, ответьте на его запрос.

Что я уже пробовал:

Я сделал с таблицами join и получил их название месяца и по in (), например [In('january','february','march')] и использовал group by month name.

Tomas Takac

На самом деле вы не сказали, в чем ваша проблема. Пожалуйста, поместите свой код в раздел "Что я пробовал" и объясните, что не работает.

Кстати вы можете использовать функция datepart[^] чтобы получить четвертак.

1 Ответов

Рейтинг:
9

Santosh kumar Pithani

CREATE TABLE #Sales(Empname CHAR(2),ProductSell INT,SellingDate DATE);

INSERT INTO #Sales 
  VALUES('A',7,'2017-11-01'),
        ('A',5,'2016-12-14'),
        ('C',5,'2017-02-11'),
        ('A',5,'2017-05-11'),
        ('B',10,'2016-11-04'),
        ('B',3,'2017-09-05'),
        ('D',1,'2017-11-05'),
         ('A',4,'2017-11-05');

SELECT Empname,SUM(productsell) AS productsell,YEAR(SellingDate) AS SaleYear,
       (CASE WHEN DATEPART(QQ,SellingDate)=1 THEN '1st QUARTER'
            WHEN DATEPART(QQ,SellingDate)=2 THEN '2nd QUARTER'
            WHEN DATEPART(QQ,SellingDate)=3 THEN '3rd QUARTER'
            WHEN DATEPART(QQ,SellingDate)=4 THEN '4th QUARTER'
                  END) AS Sale_QUARTER,
       MAX(DateName(MOnth,SellingDate)) AS Sale_MONTH
  FROM #Sales
     GROUP BY YEAR(SellingDate), DATEPART(QQ,SellingDate),
               DATEPART(MONTH,SellingDate), Empname 
      ORDER BY YEAR(SellingDate),DATEPART(QQ,SellingDate),DATEPART(MONTH,SellingDate); 

--------------------------------------------------------------------
Empname	productsell	SaleYear	Sale_QUARTER	Sale_MONTH
------------------------------------------------------------------------
B 	10	2016	4th QUARTER	November
A 	5	2016	4th QUARTER	December
C 	5	2017	1st QUARTER	February
A 	5	2017	2nd QUARTER	May
B 	3	2017	3rd QUARTER	September
A 	11	2017	4th QUARTER	November
D 	1	2017	4th QUARTER	November


cgprakash

Thnq Сантош