我有兩個表 表1看起來像這樣使用select情況
ID Repeats
-----------
A 1
A 1
A 0
B 2
B 2
C 2
D 1
表2看起來像這樣
ID values
-----------
A 100
B 200
C 100
D 300
使用視圖我需要這樣的結果查詢兩個表來過濾數據
ID values Repeats
-------------------
A 100 NA
B 200 2
C 100 2
D 300 1
這意味着,我想要獨特的ID
,其values
和Repeats
。 Repeats
如果存在多個values
而不是單個ID
,則值應該顯示爲NA,並且在repeats
存在單個值的情況下應該顯示Repeats
值。
起初,我需要顯示的repeats
的最大值,所以我嘗試了以下觀點
ALTER VIEW [dbo].[BookingView1]
AS
SELECT bv.*, bd2.Repeats FROM Table1 bv
JOIN
(
SELECT distinct bd.id, bd.Repeats FROM table2 bd
JOIN
(
SELECT Id, MAX(Repeats) AS MaxRepeatCount
FROM table2
GROUP BY Id
) bd1
ON bd.Id = bd1.Id
AND bd.Repeats = bd1.MaxRepeatCount
) bd2
ON bv.Id = bd2.Id;
,這將返回正確的結果,但試圖執行CASE
當它未能返回唯一結果ID
。請幫忙!!