Справка по сводным запросам SQL Server 2005 - PullRequest
0 голосов
/ 29 ноября 2010

Я впервые пробую сводную функцию в SQL Server 2005 и врезаюсь в стену, получая желаемый набор результатов.

У меня есть две таблицы defects и employees. Я пытаюсь получить все дефекты для сотрудников в моей таблице employee, и меня не волнуют какие-либо дефекты, назначенные людям, кроме тех, которые указаны в моей таблице сотрудников (я думаю присоединиться к ней, у меня нет попробовал подзапрос, но не думаю, что мне нужно)

Я хочу получить результаты, сгруппированные по (развернутому) полю defects.severity. Поля, которые я хочу в наборе результатов: severity, assigned to, employee.name, fix data

В основном я хочу свернуть данные в соответствии с серьезностью и показать счетчик на основе уровней серьезности дефектов

Вот мои таблицы:

CREATE TABLE [dbo].[Employees]
(
    [EmployeeId] [int] NOT NULL,
    [ManagerId] [int] NULL,
    [NTID] [nvarchar](50) NOT NULL,
    [FirstName] [nvarchar](50) NOT NULL,
    [LastName] [nvarchar](50) NOT NULL,
    [FullName] [nvarchar](100) NOT NULL,
    [ReportingGroup] [nchar](10) NOT NULL,
    [Added] [datetime] NOT NULL,
    [LastUpdate] [datetime] NOT NULL,
    [UpdateBy] [nvarchar](50) NOT NULL
)

CREATE TABLE [dbo].[defects]
(
    [Defect ID] [float] NULL,
    [SubSystem] [nvarchar](255) NULL,
    [Status] [nvarchar](255) NULL,
    [Severity] [nvarchar](255) NULL,
    [FixDate] [nvarchar](255) NULL,
    [Assigned To] [nvarchar](255) NULL,
    [Summary] [nvarchar](255) NULL,
    [Product List] [nvarchar](255) NULL,
    [Development Type] [nvarchar](255) NULL,
    [Defect Category] [nvarchar](255) NULL,
    [Defect Cause] [nvarchar](255) NULL,
    [Est Ready for Retest] [nvarchar](255) NULL,
    [Fix Stage] [nvarchar](255) NULL,
    [Planned Fix in Deployment Event] [nvarchar](255) NULL,
    [Planned Fix in Event Mgmt Group] [nvarchar](255) NULL,
    [Est Fixed Date] [nvarchar](255) NULL,
    [Other Owner] [nvarchar](255) NULL
)

1 Ответ

0 голосов
/ 29 ноября 2010

Я получил это с этим SQL:

select [Assigned To], [1-Urgent],[2-High],[3-Medium],[4-Low]
from (select [assigned to],[Business Severity] from defects where [assigned to] is not null) D
pivot
(count([Business Severity]) for [Business Severity] in ([1-Urgent],[2-High],[3-Medium],[4-Low])) V

спасибо всем

...