2011-11-16 2 views
0

나는 두 개의 테이블이있다. 일치하는 StreamId가있는 주석의 수에 따라 계산 된 Streams 테이블의 Comments 열을 갖고 싶습니다.SQL Server 2008의 계산 된 열

현재 Streams 테이블을 쉽게 변경할 수 있습니까? 고맙습니다.

답변

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

좋은 작품입니다. 하지만 이제는 원래 테이블 인 Streams 대신에 withCount를 사용할 수 있습니까? 그것은 스트림이 코멘트 수를 포함한 모든 것을 가지고 있기 때문에. 권리? – user1027620

+0

Streams 테이블에서 새 필드를 생성 할 때 해당 필드를 인식 할 수 있도록 Count 뷰를 다시 컴파일해야합니다. Luis Siquot,이 경우 유지 관리에 대한 트리거 문제에 대해 언급하는 것이 좋습니다. 정말입니다. – Hamikzo

+0

간단한 anwser : 테이블 대신 선택 항목에 대한보기를 사용할 수 있습니다. 복잡한 anwser :이 accions 테이블을 직접 사용하기 위해 삭제, 업데이트 및 삽입 (이 간단한 작업에도 권장되지 않음)을 관리하기 위해 뷰에서 트리거를 만들 수 있습니다. –

3

"실제"열 값을 원하면 트리거를 사용하십시오. 그러나 다른 옵션은이 필드를 계산하는보기 일 수 있습니다. 기본 키 값을 기반으로 주석을 계산하는 경우에는 매우 빠른 계산이어야합니다.

+0

그래,이에 따라 계산하는 오전 understud 더 dificult입니다 PK. 보기를 만들려면 어떻게해야합니까? – user1027620