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

Откуда:
Сообщений: 2
Добрый день.

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

Есть 2 таблицы

CREATE TABLE [dbo].[GroupName](
	[id] [int] NOT NULL,
	[gName] [varchar](50) NOT NULL,
 CONSTRAINT [PK_GroupName] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


CREATE TABLE [dbo].[Napr](
	[naprName] [varchar](50) NOT NULL,
	[groupId] [int] NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[Napr]  WITH CHECK ADD  CONSTRAINT [FK_Napr_GroupName] FOREIGN KEY([groupId])
REFERENCES [dbo].[GroupName] ([id])
GO

ALTER TABLE [dbo].[Napr] CHECK CONSTRAINT [FK_Napr_GroupName]
GO

insert GroupName values(1, 'group1')
insert GroupName values(2, 'group2')
insert GroupName values(3, 'group3')

insert Napr ('a', 1)
insert Napr ('b', 2)
insert Napr ('c', 1)
insert Napr ('c', 1)
insert Napr ('a', 3)
insert Napr ('b', 1)

Можно ли написать такой запрос, чтобы результат был в таком формате?

Napr group1 group2 group3
a 1 0 1
b 1 1 0
c 2 0 0

То есть сумма групп по каждому направлению.
19 май 11, 15:11    [10678788]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
PIVOT
19 май 11, 15:13    [10678809]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
BoxyBrown
Member

Откуда:
Сообщений: 2
Спасибо, не знал в какую сторону копать.

У меня вот так получилось, меня устраивает

SELECT naprName, [1] AS group1, [2] AS group2, [3] AS group3
FROM 
(SELECT naprName, groupId
FROM Napr) p
PIVOT
(
COUNT (groupId)
FOR groupId IN
( [1], [2], [3])
) AS pvt
19 май 11, 16:38    [10679732]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить