2017-03-02 53 views
0

我需要的輸出,將顯示TripName,[類型],名字,姓氏和[NumberOfGuides]從這個查詢,但我得到一個錯誤,指出:錯誤使用子查詢

「消息512,級別16,狀態1,行2子查詢返回多個1個 值。子查詢如下=,!=,<,< =,

,> =,或當子查詢時,這是不允許的用作表達「。

select TripName, [Type], FirstName, LastName, (select count(*) 
from Guide g, TripGuide tr, Trip t 
where g.GuideNum = tr.GuideNum and t.TripID = tr.TripID 
group by TripName, Type 
having count(*) > 1) as [NumberOfGuides] 
from Guide, Trip 
order by NumberOfGuides desc 
+1

請在您的問題中標記正確的RDMBS。 – Igor

+0

查詢的目標是什麼?你要看什麼?你的每個柱子從哪裏來?我們不能告訴 – kbball

+1

[SQL Server子查詢可能重複返回多個值。這是不允許的,當子查詢遵循=,!=,<, <= , >,> =](http://stackoverflow.com/questions/2653188/sql-server-subquery-returned-more-than-1-value-this-is -n--s-s) –

回答

0

即使我不能精確解讀您的查詢,從子查詢搬出count的:

select TripName, [Type], FirstName, LastName, count(
    select * 
    from Guide g, TripGuide tr, Trip t 
    where g.GuideNum = tr.GuideNum and t.TripID = tr.TripID 
    group by TripName, Type 
    having count(*) > 1) as [NumberOfGuides] 
from Guide, Trip 
order by NumberOfGuides desc 

除此之外似乎還有在一個邏輯錯誤子查詢,因爲沒有與頂級查詢的鏈接。

所以我想列NumberOfGuides總是報告相同的價值。

+0

感謝您的迴應,但它仍然無法正常工作。當我單獨運行子查詢時,它會執行並顯示正確的輸出。但是,如果我嘗試加入TripName,[類型],名字,姓氏,它會給出錯誤 –

+0

對不起,但您的評論聽起來像是一件容易的事。 很明顯,您的查詢存在許多缺陷,我的答案突出顯示了宏觀問題。 我建議你開始深入研究你試圖實現的機制。例如,只是看看相關的帖子:我只看到[加入與子查詢](http://stackoverflow.com/questions/2577174/join-vs-sub-query)。或者看一下@RicardoC建議的鏈接(其標誌可能會明確地說明此事)。 – rfb

0

我不明白顯示指南的數量的要求,您已經顯示可用的指南名稱。通常對於這種類型的結果列,導遊的數量將爲1,因爲該行程將只有1個指南,其中可以提供姓名和姓氏。如果您能向我們提供您所期望的要求目標和樣本要求的結果,將對您有所幫助。