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

Откуда:
Сообщений: 3
Всем привет, такая вот проблема...
Хочу сделать выборку из трех таблиц.
Таблица Perfomers связана с остальнимы посредством внешних ключей

Мой запрос:
SELECT        Perfomers.*, COUNT(Wanteds.ID) AS CurrCaseQty, COUNT(Detaineds.ID) AS FoundQty
FROM          Perfomers, Wanteds, Detaineds
WHERE         Perfomers.ID = Wanteds.PerformerID
AND			  Perfomers.ID = Detaineds.PerfomerID

MS SQL Server 2008 Express возвращает ошибку:
Column 'Perfomers.ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Подскажите пожалуйста, где я намудрил.

К сообщению приложен файл. Размер - 0Kb
1 июн 09, 21:26    [7253556]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36829
Perfomers.* уберите, и будут вам каунты.
1 июн 09, 21:32    [7253565]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
AndrewstiX
Member

Откуда:
Сообщений: 3
Это понятно, но мне нужны еще и поля таблицы Perfomers...
Походу я неправильно построил запрос, подскажите пожалуйста как это сделать правильно.
1 июн 09, 21:36    [7253574]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
count() over()
1 июн 09, 21:51    [7253602]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
AndrewstiX
Member

Откуда:
Сообщений: 3
Не стал заморачиваться, написал функции...
Всем спасибо.
1 июн 09, 22:41    [7253691]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
Николай Гаврилович
Guest
AndrewstiX,

какие функции написали?
1 июл 09, 17:52    [7365104]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
прохожий, проходивший случайно м
Guest
не проверял:
select
	p.*, w1.CurrCaseQty, d1.FoundQty
from
	Perfomers p
	inner join Wanteds w on p.ID = w.PerformerID
	inner join Detaineds d on p.ID = d.PerformerID
	inner join (
                       select
		          w.PerformerID PerformerID,
			  count(w.ID) CurrCaseQty
			from
			  w
		     ) w1 on w1.PerformerID = w.PerformerID
	inner join (
			select
			  d.ID ID,
			  count(d.ID) FoundQty
			from
			 d
			) d1 on d1.ID = d.ID
1 июл 09, 20:47    [7365701]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из нескольких таблий с функцией COUNT()  [new]
Горилла с Нижнего Тагила
Member

Откуда:
Сообщений: 407
SELECT Perfomers.*, CurrCaseQty, FoundQty
from
(SELECT P.ID, COUNT(W.ID) AS CurrCaseQty, COUNT(D.ID) AS FoundQty
FROM Perfomers as P
inner join  Wanteds as W
on P.ID = W..PerformerID
inner join Detaineds as D
on P.ID = D.PerfomerID
group by P.ID) as PWD
inner join  Performers 
on Performers.ID = PWD.ID
1 июл 09, 20:57    [7365720]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить