2012-02-15 61 views
2
select maintitle, 
     firstprodyear, 
     COUNT(DISTINCT episode.episodeid) as TOTALEPISODES 
from series 
LEFT OUTER JOIN episode ON series.seriesid = episode.seriesid  
LEFT OUTER JOIN filmitem ON filmitem.filmid = episode.episodeid 
where firstprodyear =(select MIN(firstprodyear) from series) 
group by maintitle, firstprodyear; 

2/3查詢起作用。我確實得到了系列賽的頭銜,並且是最早的一年。但似乎情節櫃檯不能正常工作。對於某些情節,我確實得到了15,34和某處0。 我會提供一些指導,讓情節計數器按照它應該的方式工作。我錯過了哪裏?SQL計數器困難

+1

你期望得到什麼結果?你能包括一些樣本數據嗎? – 2012-02-15 15:35:15

回答

1

嘗試:

select maintitle, 
     min(firstprodyear) firstprodyear, 
     COUNT(DISTINCT episode.episodeid) as TOTALEPISODES 
from series 
LEFT OUTER JOIN episode ON series.seriesid = episode.seriesid  
/*LEFT OUTER JOIN filmitem ON filmitem.filmid = episode.episodeid */ 
group by maintitle; 

注:鏈接到filmitem似乎是不必要的與所選擇的數據。

+0

是的,我認爲問題可能與此有關。請注意,您正在使用不同的ID連接多個表格(而不是僅使用episode.episodeid)。所以,最終可能會有棘手的結果。 – 2012-02-15 15:20:00

+0

我試過了,發生了同樣的事情。 seriesID是情節表的外鍵,但是來自filmitem的filmid也給出了episode.episodeid是它的主鍵。我現在只是盲目的,但感謝努力:) – 2012-02-15 15:31:48

0

您的查詢返回的數據庫中有firstprodyear等於最早的firstprodyear的系列。您可以將子選擇語句視爲返回查詢中使用的固定數字。

例如,我們的生活(firstprodyear = 1965)的如果你的數據庫最早的系列是天,那麼你會得到發作的次數在那些也開始在1965年

系列,您可能還需要更清楚地表明哪個表格實際上包含firstprodyear字段,但我假設它是series

+0

系列(主要,firstprodyear,系列ID)------插曲(episodeID(小學refiteiteite),小標題(我們忽略),seriesid(ref filmitem ),seriesid(外鍵參考序列ID) – 2012-02-15 15:32:37