私は値を持つこのRoomTableを持っています
SID Room Date APhase BPhase ACount BCount
1 One 10/28/2012 4 5 3 6
2 One 10/29/2012 2 3 -1 -1
3 One 10/30/2012 4 5 7 -1
4 Two 10/28/2012 8 3 2 3
5 Two 10/30/2012 3 5 4 6
6 Three 10/29/2012 5 8 2 -1
7 Three 10/30/2012 5 6 -1 4
8 Four 10/29/2012 6 2 -1 -1
9 Four 10/30/2012 5 8 -1 -1
私が欲しいのは、以下を返すことです:
- 各部屋の A Phase と B Phase の合計。
- 各部屋の最大日付からの ACount と BCount の値
- ACount 値が -1 の場合は、前の日付を使用します。Bカウントと同じ。
- ACount 値が -1 で、前の日付が -1 の場合など。次に 0 を使用します。BCount と同じです。
このクエリで1番のクエリを取得できます
SELECT Room, sum(APhase) as TotalAPhase, sum(BPhase) as TotalBPhase
FROM RoomTable
WHERE Date between '10/28/2012' and '10/30/2012'
group by Room
order by Room
しかし、2 から 4 のクエリを含める方法がわかりません。
これは私が望む出力です
Room TotalAPhase TotalBPhase ACount BCount
One 10 13 7 6
Two 11 8 4 6
Three 10 13 2 4
Four 11 10 0 0
どんなアイデアでも大歓迎です。ありがとう。