TSQL-选择具有相同IS的值
有这样的观点: 记录“NDocumento”仅按设计填充在事务的第一行。这些行由作为ID的列“NMov”分组 因为这是一个视图,所以我想通过SELECT语句用第一个事务中包含的对应值填充每个空“NDocumento”记录 正如您在图片中看到的,这是MS-SQL Server 2008,因此缺少滞后使游戏更难 我非常感谢您的帮助 谢谢试试这个:TSQL-选择具有相同IS的值,tsql,Tsql,有这样的观点: 记录“NDocumento”仅按设计填充在事务的第一行。这些行由作为ID的列“NMov”分组 因为这是一个视图,所以我想通过SELECT语句用第一个事务中包含的对应值填充每个空“NDocumento”记录 正如您在图片中看到的,这是MS-SQL Server 2008,因此缺少滞后使游戏更难 我非常感谢您的帮助 谢谢试试这个: SELECT T1.NDocumento , T2.NMov , T2.NRiga -- , T2. Re
SELECT
T1.NDocumento
, T2.NMov
, T2.NRiga
-- , T2. Rest of the fields
FROM NDocumentoTable T1
JOIN NDocumentoTable T2 ON T2.NMov = T1.NMov
WHERE T1.NRiga = 1
我在NMov的分区上使用了LAG(),根据您的数据进行调整。您可以根据需要更改分区。逻辑是,如果给定分区的NDocument为空,则获取上一个值
CREATE TABLE myTable_1
(
NMov int
,NRiga int
,CodiceAngrafica varchar(100)
,Causale varchar(100)
,DateRegistration date
,DateDocumented date
,NDocument varchar(100)
)
INSERT INTO myTable_1 VALUES (5133, 1, '', 'V05', '01/14/2021', '01/14/2021', 'VI-2100001')
,(5133, 2, '', 'V05', null, null, '')
,(5134, 1, '', 'V05', '01/14/2021', '01/14/2021', 'VI-2100002')
,(5134, 2, '', 'V05', null, null, '')
SELECT
NMov
,NRiga
,CASE WHEN ISNULL(NDocument,'') = ''
THEN LAG(NDocument) OVER (PARTITION BY NMov,Causale ORDER BY NMov)
ELSE NDocument END AS [NDocument]
FROM myTable_1
请阅读一些改进问题的技巧。请编辑您的问题,将所有相关信息作为文本包含在内。否则,您可能会得到一张稍微倾斜的查询照片作为答案。