我有這樣一個房間的庫存表:
| dtm | hotelid | roomcode | intqty||
|---|---|---|---|---|
| 2000-01-04 | 23 | 23 | svr | 9 |
| 2000-01-04 | 2000-01-04 | 23 | ovb | 9 |
這是我的映射表 :
| hotelid | >。roomcode1 | roomcode2外部房間||
|---|---|---|---|
| 23 | svr | ovb | 023 |
我試圖在上面的庫存表上得到同一日期兩個房間的intqty的總和。 這是我目前所擁有的:
select
a.dtm as InvDate。
a.intResortID as ResortId,
a.strRoomType as RoomType,
sUM(a.intQty) as InvCount,
am.externalRoomId
from
dbo.tblAvailable c
join dbo.tblAvailable a on a.dtm = c.dtm
and a.intResortID = c.intResortID
and a.strRoomType = c.strRoomType
join dbo.tblResorts r on r.intResortID = a.intResortID
join bbtest.externalResortMap arm on arm.resortID = a.intResortID
join bbtest.externalRoomMap am on am.RoomId = a.strRoomType
組 由
a.dtm,
a.intResortID,
a.strRoomType,
a.intQty,
am.externalRoomId
order by
invDate。
預期結果是:
| 邀請日期 | 。ResortId | RoomTypeInvCount externalRoomId|||||
|---|---|---|---|---|---|---|
| 2000-01-04 | 23 | 23 | svr | 18 | 18 | 023 |
查詢輸出 :
| Invdate | ResortId | RoomTypeInvCount externalRoomId||||||
|---|---|---|---|---|---|---|---|
| 2000-01-04 | 23 | 23 | svr | 9 | 9 | 023 | |
| 2000-01-04 | 2000-01-04 | 23 | 23 | ovb | 9 | 9 | 023 |
uj5u.com熱心網友回復:
不知道為什么你要兩次加入tblAvailable,但如果我沒有犯任何錯誤,以下是你需要做的:
select
a.dtm as InvDate。
a.intResortID as ResortId,
am.RoomId_1 as RoomType,
sum(a.intQty) as InvCount,
am.externalRoomId
from
dbo.tblAvailable a
join dbo.tblResorts r on r.intResortID = a.intResortID
join bbtest.externalResortMap arm on arm.resortID = a.intResortID
join bbtest.externalRoomMap am
on a.strRoomType in (am.RoomId_1 ,am.RoomId_2)
組 by
a.dtm,
a.intResortID,
am.RoomId_1,
am.externalRoomId
順序 by
invDate。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314821.html
標籤:
上一篇:為DEFAULTSQL獲取空值
