我想創建一個簡單的視圖,從2個數據庫獲取數據。幫助查詢,應該只返回最近的記錄
我有一個booking
表,只顯示每個預訂一次,每個預訂記錄的日記表。
每個預訂多次表明了在日記表,但是我只希望最近在我看來
出於某種原因,這說明和預訂信息不工作
SELECT
t0.BOOKNO, t0.PARTY, t0.TOUR, t0.DEPART, t0.DEP7, t0.BOOK7, t0.PAID, t0.APRICE, t1.TEXT
FROM
(SELECT DISTINCT
TOP (100) PERCENT
dbo.DIARY.ADDED, dbo.BOOKINGS.BOOKNO, dbo.BOOKINGS.PARTY,
dbo.BOOKINGS.TOUR, dbo.BOOKINGS.DEPART,
dbo.BOOKINGS.DEP7, dbo.BOOKINGS.BOOKED, dbo.BOOKINGS.BOOK7, dbo.BOOKINGS.PAID,
dbo.BOOKINGS.APRICE, dbo.BOOKINGS.STATUS
FROM
dbo.BOOKINGS
CROSS JOIN
dbo.DIARY
WHERE
(dbo.BOOKINGS.PAID IS NULL)
OR (dbo.BOOKINGS.PAID = 0)
GROUP BY
dbo.BOOKINGS.BOOKNO, dbo.BOOKINGS.PARTY, dbo.BOOKINGS.TOUR, dbo.BOOKINGS.DEPART,
dbo.BOOKINGS.DEP7, dbo.BOOKINGS.BOOKED, dbo.BOOKINGS.APRICE, dbo.BOOKINGS.STATUS,
dbo.BOOKINGS.BOOK7, dbo.BOOKINGS.PAID, dbo.DIARY.ADDED
HAVING
(dbo.BOOKINGS.STATUS <> 'xl') AND
(dbo.BOOKINGS.DEPART > CONVERT(int, GETDATE()))
ORDER BY
dbo.BOOKINGS.BOOKNO) AS t0
INNER JOIN
(SELECT
BOOKNO, TEXT, MAX(ADDED) AS added
FROM
dbo.DIARY AS DIARY_1
GROUP BY BOOKNO, TEXT) AS t1 ON t0.BOOKNO = t1.BOOKNO
我tryed這但它沒有工作無法解析查詢文本?
;WITH MostRecentBookings AS ( SELECT dbo.DIARY.ADDED7, dbo.DIARY.ADDED, dbo.BOOKINGS.BOOKNO, dbo.BOOKINGS.PARTY, dbo.BOOKINGS.TOUR, dbo.BOOKINGS.DEPART,
dbo.BOOKINGS.DEP7, dbo.BOOKINGS.BOOKED, dbo.BOOKINGS.BOOK7, dbo.BOOKINGS.PAID, dbo.BOOKINGS.APRICE, dbo.BOOKINGS.STATUS,
dbo.DIARY.TEXT, ROW_NUMBER() OVER(PARTITION BY dbo.BOOKINGS.BOOKNO ORDER BY dbo.DIARY.ADDED DESC) AS 'RowNum'
FROM dbo.BOOKINGS INNER JOIN dbo.DIARY ON dbo.BOOKINGS.BOOKNO = dbo.DIARY.BOOKNO
WHERE (dbo.BOOKINGS.PAID IS NULL) OR (dbo.BOOKINGS.PAID = 0))
SELECT * FROM MostRecentBookings
WHERE RowNum = 1
你能解釋什麼不起作用嗎?它會給出錯誤嗎?或者返回什麼錯誤的數據? – Dan 2011-05-20 17:23:48
文本列返回出於奇怪的原因,它應該只接受每行數1行,但由於某種原因多個來了 –
2011-05-20 17:25:08