2014-02-21 2 views
0

Я новичок в SQL, и мне нужна помощь, чтобы получить решение для этого условия.Оператор SQL для подсчета с условием

Для каждого притяжения, выходной число людей, посещающих этот аттракцион в течение 2013.

create table visitor( 
visitID   char(n), 
name   char(n) not null, 
primary key (visitID) 
); 

create table ticket(
ticketID  char(n), 
ticketType  char(n), 
day    int(n), 
month   char(n), 
year   int(n), 
seasonID  char(n), 
visitID   char(n), 
primary key (ticketID), foreign key (seasonID) references seasonPerClass, foreign  
key (visitID) references visitor 
); 

create table attractionVisit(
attractionID  char(n), 
ticketID  char(n), 
foreign key (attractionID) references attraction, foreign key (ticketID) references  
ticket 
); 

create table attraction(
attractionID  char(n), 
attractionName char(n) not null, 
primary key (attractionID) 
); 

Я не могу проверить свой код, но до сих пор у меня есть

SELECT AttractionName, count(distinct VisitID) 
FROM (Visitation NATURAL JOIN AttractionVisit) 
WHERE year = 2013; 

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

+1

Какие у вас rdbms? что с этими '(n)' s повсюду? иметь какие-либо данные выборки? – Alexander

+0

, в котором вы хранили год? – Rohaan

+1

Я не вижу таблицу по имени 'Visitation' –

ответ

0

Вы должны group by в запросе:

SELECT AttractionName, count(distinct VisitID) 
FROM (Visitation NATURAL JOIN AttractionVisit) 
GROUP BY AttractionName 
WHERE year = 2013; 
0
select att.attractionName, count(att.attractionId) as count 
from visitor v inner join ticket t on (v.visitID = t.visitID) 
inner join attractionVisit av on (t.ticketID = av.ticketID) 
inner join attraction att on (av.attractionID = att.attractionID) 
where t.year = 2013 
group by att.attractionName` 

Надежда это поможет.

Смежные вопросы