2013-10-16 92 views
0

與組多個表我在數據庫中有這些表:選擇從BY子句

Ticket 
------------------------------- 
|ID  int    PK | 
|Paid  varchar(50)   | 
------------------------------- 

TicketRow 
---------------------------------- 
|ID   int    PK | 
|TicketID_FK int     | 
|SHtimeID_FK int     | 
---------------------------------- 

我想獲取重複的行,即具有相同的SHTiemID_FK並在票務表Paid='ok'狀態,從TicketRow表。 我試試這個:

select SHtimeID_FK,count(*) as cnt from dbo.TicketRow 
group by SHtimeID_FK 
having count(*)>1 

但我不知道我應該如何在我的結果集添加票務表。

更新: 我還需要Ticket.ID在我的ResultSet

回答

1

如果我理解您的方案正確,你可以通過一個簡單的內部連接這兩個表合併爲我想TicketRow.TicketID_FK是一個外鍵票務表。

select SHtimeID_FK,count(*) as cnt 
from dbo.TicketRow as tr inner join dbo.Ticket as t on tr.TicketID_FK=t.ID 
where t.Paid='ok' 
group by SHtimeID_FK 
having count(*)>1 
+0

謝謝你的回覆,你的解決方案是正確的,但我需要將Ticket.ID添加到我的結果集中,我該怎麼辦? –

+0

@SamanGholami,如果按SHtimeID_FK進行分組,則不能在Select子句中添加Ticket.ID,因爲組中可能有不同的Ticket.ID。一種方法是,您還可以在group by子句中添加Ticket.ID,但這會改變您的業務邏輯,不是嗎? – danny

+0

是的,您沒錯。感謝您的完美幫助:) –