2011-11-16 199 views
0

我有兩個表:SQL Server 2008中 - 計算列

1)流

2)評論

內流,我想創建一個評論欄目。我希望Streams表中的Comments列取決於與匹配的StreamId有多少註釋。

有沒有簡單的方法來改變當前的流表?謝謝。

回答

1

您可以使用

-- be careful, I do asume lot of field names 
create view withCount as 
select s.*, c.cant 
from Streams s 
left join 
    (select Streams_ID, count(*) as cant from Comments group by Streams_ID) as c 
    on s.id = c.Streams_ID 

然後

select * from withCount where ... order by ... // or whatever you want 

不要使用觸發器來這一任務,他們更難治維護和

+0

不錯,這完美的作品。但我現在可以使用withCount而不是原始表流?由於它具有Streams所做的一切,包括評論數量。對? – user1027620

+0

你可以,但記住當你在Streams表上創建一個新的字段時,你需要重新編譯withCount視圖來識別這些新的字段。而且,Luis Siquot,在這種情況下保持觸發問題非常好。它確實是。 – Hamikzo

+0

簡單的anwser:你可以使用視圖來選擇而不是表格。複雜的anwser:您可以在視圖上創建觸發器來管理刪除,更新和插入(不要爲此簡單任務推薦),直接使用該表。 –

3

如果你想要一個「真正的」列值,看看使用觸發器。不過,另一種選擇可能是計算此字段的視圖 - 如果您要根據主鍵值計算評論,那麼它應該是一個非常快速的計算。

+0

是啊,我根據計算,以understud PK。我如何創建一個視圖? – user1027620