SQL-запрос для генерации данных - PullRequest
0 голосов
/ 30 марта 2009

У меня есть таблица ученика с двумя столбцами:

JoinDate DATE
EmployeeName STRING

Содержимое таблицы выглядит следующим образом:

EmployeeName    | JoinDate
----------------+-----------------
jaison          | 1-jan-2008
robin           | 2-feb-2008
binoy           | 3-mar-2008
rahul           | 4-feb-2008

Я рассчитываю подготовить следующий вывод на основе этой таблицы: таблица, содержащая 4 столбца с именами jan, feb, mar, april. Ниже каждого из этих месяцев подсчет дается как 1,2,1,0. Эти цифры представляют количество сотрудников, которые присоединились в этом месяце (1 января, 2 февраля, 1 марта, 0 апреля)

Можете ли вы дать мне необходимый запрос SQL?

Ответы [ 3 ]

1 голос
/ 31 марта 2009

Это будет работать, кто-нибудь знает другой способ?

SELECT Sum([1]) AS Jan, Sum([2]) AS Feb, Sum([3]) AS Mar, Sum([4]) as Apr,
       Sum([5]) as May, Sum([6]) as Jun, Sum([7]) as Jul, Sum([8]) as Aug,
       Sum([9]) as Sep, Sum([10]) as Oct, Sum([11]) as Nov, Sum([12]) as Dec
FROM (SELECT Month(Join_Date) as Mon FROM student) ps
PIVOT
    (Count(Mon) FOR Mon IN 
        ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
    ) AS pvt
GROUP BY [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]
0 голосов
/ 02 апреля 2009

Это также будет работать

Create table [sample] (Employeename varchar(50), join_date smalldatetime)
insert into [sample] values('Ganesh','01/26/2008')
insert into [sample] values('Ramesh','02/26/2008')
insert into [sample] values('Dinesh','03/26/2008')
insert into [sample] values('Suresh','01/26/2008')

Select * from [sample]

SELECT 'Students Admission by Monthwise' ,[1] AS january,[2] AS february,[3] AS March,[4] AS April
FROM( 
        SELECT  Employeename,
                Month(join_date) monthname 
        FROM    [sample]
    ) A
PIVOT
(
    COUNT(Employeename)
    FOR monthname in
        ([1],[2],[3],[4])
) AS PVT
0 голосов
/ 30 марта 2009

Следующий запрос даст вам набор результатов из двух столбцов (месяц и итог), где месяц - это название месяца, а итог - количество людей, присоединившихся к этому месяцу:

SELECT MONTHNAME(`join_date`) AS `month`, COUNT(*) AS `total` GROUP BY MONTHNAME(`join_date`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...