我有一張桌子,裏面有一個tendertype,它顯示哪些付款已經在salesrow上完成了。填寫列中的缺失值
UPDATE:對不起,我不太清楚 - 它應該是按SalesHeader因爲另一salesheader可以有不同的值
在例1我只有一個付款記錄。這應該是 目前在所有記錄
在例2我有2筆支付所有記錄。但我應該只拿其中一個 並填寫空位,但保持原樣。
的樣本數據
DECLARE @Table TABLE (
SalesHeader varchar(10),Amount int,TenderType nvarchar(50)
)
INSERT INTO @Table
VALUES
('A',1 ,'MasterCard'),
('A',10 ,NULL ),
('A',100 ,NULL ),
('A',10 ,NULL ),
('A',1 ,NULL ),
('B',1 ,'CASH' ),
('B',100 , NULL )
select * from @Table
有我試圖到目前爲止什麼?
SELECT
[Fakturanummer] as SalesHeader
,[Omsætning] as Amount
,a.[TenderType]
,x.TenderType
FROM [CE_COG-BI-EDW].[dm].[SALG_TRANSAKTIONER] a
CROSS APPLY(
select top 1 TenderType from [CE_COG-BI-EDW].[dm].[SALG_TRANSAKTIONER] t
where TenderType is not null and a.Fakturanummer = t.Fakturanummer
)x
where DATASET = 'se' and Fakturanummer in ('5133324','104893')
order by Fakturanummer
實施例1:
SalesHeader | Amount | TenderType
----------------------------------------
A 1 MasterCard
A 10 NULL
A 100 NULL
A 10 NULL
A 1 NULL
B 10 CASH
B 100 NULL
期望的結果1
SalesHeader | Amount | TenderType
----------------------------------------
A 1 MasterCard
A 10 MasterCard
A 100 MasterCard
A 10 MasterCard
A 1 MasterCard
B 1 CASH
B 100 CASH
例2:
SalesHeader | Amount | TenderType
----------------------------------------
A 1 MasterCard
A 10 CASH
A 100 NULL
A 10 NULL
A 1 NULL
期望的結果2
SalesHeader | Amount | TenderType
----------------------------------------
A 1 MasterCard
A 10 CASH
A 100 MasterCard
A 10 MasterCard
A 1 MasterCard
我試着用一些CROSS APPLY
,但我不能讓我的頭周圍。
是第一個例子左連接? –
@RyanGadsdon林不知道你的意思。它如何我的表看起來像 – plaidDK
我沒有downvote –