1
私はこのクエリを持っている:予想通りこのクエリに2つの選択肢があるのはなぜですか?
SELECT WorkId, RegisterDate, sum(RoomType1) As RoomType1, sum(RoomType2) As RoomType2, sum(RoomType3) As RoomType3, sum(RoomType4) As RoomType4, sum(RoomType5) As RoomType5, sum(RoomType6) As RoomType6, sum(RoomType7) As RoomType7, sum(RoomType8) As RoomType8
FROM (
SELECT dbo.[Work].WorkId, dbo.[Work].RegisterDate,
case dbo.Floor.RoomType when 1 then 1 else 0 end as RoomType1,
case dbo.Kat.RoomType when 2 then 1 else 0 end as RoomType2,
FROM dbo.Belediye INNER JOIN
dbo.[Is] ON dbo.Municipality.MunicipalityId= dbo.[Is].MunicipalityWorkId INNER JOIN
dbo.Look ON dbo.[Work].LookWorkId = dbo.Look.LookId ,
WHERE (dbo.Look.LocationIS NOT NULL)
) E
GROUP BY WorkId,
このクエリは動作しますが、それは2を選択した理由私はなぜそれがそれらを必要ない、理解できないのですか?それを私に説明してください。ありがとう。
を使用しています。複雑な表現を2回書くのを避けるために 'group by 'を実行すると非常に便利です。 (これはANSI SQLでも許可されていません。) – jarlh
この場合、実際には必要ないようです。 1つの選択でグループ化を行い、 'sum(case ... end)'を実行できます。 – LukStorms