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

Откуда:
Сообщений: 54
Всем привет, чёто не выходит вроде делаю всё праввильно.
Нужно чтобы вышли столбцы p.personid ,p.name , p.surname , o.orderID - и только те, где у персоны есть больше 5-ти ордеров

если набираю то выходит person_id и количество сделанных ордеров(зкакзов)

select SUM(o.person_id) from orders as o
GROUP BY o.person_id
HAVING count (o.person_id) > 5


но если пишу как написано ниже и хочу вывести p.personid ,p.name , p.surname , o.orderID через ИННЕР ДЖОИН то не идёт кто-то может сказать в чём проблема?
Заранее спасибо



CREATE TABLE Persons
(
person_id int not null primary key identity(1,1),
name nvarchar(100),
surname nvarchar(100)
)


insert into Persons (name, surname) values ('sasha', 'gard')
insert into Persons (name, surname) values ('pit', 'black')
insert into Persons (name, surname) values ('alex', 'greid')


drop table Orders
create table Orders
(
orderID int not null primary key identity(1,1),
person_id int
)


insert into Orders (person_id) values ('1')
insert into Orders (person_id) values ('1')
insert into Orders (person_id) values ('1')
insert into Orders (person_id) values ('1')
insert into Orders (person_id) values ('1')
insert into Orders (person_id) values ('1')

insert into Orders (person_id) values ('2')
insert into Orders (person_id) values ('2')

insert into Orders (person_id) values ('3')




select p.personid ,p.name , p.surname , o.orderID from Persons as p
inner join Orders as o on o.person_id = p.personid
where o.person_id =

(
select SUM(o.person_id) from orders as o
GROUP BY o.person_id
HAVING count (o.person_id) > 5
)
19 июн 12, 22:05    [12741731]     Ответить | Цитировать Сообщить модератору
 Re: count  [new]
alex212121
Member

Откуда:
Сообщений: 54
alex212121,



ошибся тут нужно но всё равно не идёт

select p.personid ,p.name , p.surname , o.orderID from Persons as p
inner join Orders as o on o.person_id = p.personid
where o.person_id IN

(
select SUM(o.person_id) from orders as o
GROUP BY o.person_id
HAVING count (o.person_id) > 5
)
19 июн 12, 22:10    [12741747]     Ответить | Цитировать Сообщить модератору
 Re: count  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
alex212121
всё равно не идёт
Интересно, какой смысл в суммировании ИД? :-)

select p.person_id ,p.name , p.surname , o.orderID from Persons as p 
inner join Orders as o on o.person_id = p.person_id
where o.person_id in

(
select o.person_id from orders as o
GROUP BY o.person_id
HAVING count (o.person_id) > 5
)
19 июн 12, 22:43    [12741828]     Ответить | Цитировать Сообщить модератору
 Re: count  [new]
alex212121
Member

Откуда:
Сообщений: 54
alexeyvg,

спасибо большое

что поделать домашнее задание задали нужнол делать
19 июн 12, 22:56    [12741879]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить