我有下面的表格(为简单起见,我仅显示其中一部分表格作为示例,而不是全部内容):
CREATE TABLE InstArtRel
(
id INT IDENTITY(1, 1) NOT NULL,
idIns INT,
ExpDateRev DATE,
codArticle NVARCHAR(4),
PRIMARY KEY (id)
);
INSERT INTO InstArtRel (idIns, ExpDateRev, codArticle)
VALUES (17400, datefromparts(2018, 10, 1), 'X509'),
(17400, datefromparts(2020, 12, 2), 'X529'),
(17400, datefromparts(2016, 9, 10), 'T579'),
(17400, datefromparts(2017, 6, 7), 'Z669'),
(10100, datefromparts(2019, 8, 17), 'TG09'),
(10100, datefromparts(2018, 3, 28), 'TG09'),
(10100, datefromparts(2018, 4, 24), 'TG09'),
(10100, datefromparts(2016, 7, 12), 'TG09');
CREATE TABLE Installations
(
idIns INT NOT NULL,
DateIns DATETIME,
PRIMARY KEY (idIns)
);
INSERT INTO Installations (idIns, DateIns)
VALUES (17400, '2020-12-01'),
(10100, '2022-05-07');
对于表安装中的每个idIn,我需要根据以下假设,用DateIns
表中的ExpDateRev
列更新其InstArtRel
列:
如果codArticle
表中IdIns
的所有InstArtRel
列值都相同,则将为DateIns
的Installations
表中的idIns
列更新最大值[ C0]。
否则,如果ExpDateRev
表中的codArticle
的所有IdIns
列值都不相同,则将使用对应的InstArtRel
更新表DateIns
中的Installations
列。 idIns
的最小值。
[一个更好的例子...考虑到上述情况,在这种情况下,结果将是:
ExpDateRev
idIns | DateIns
------+-----------
17400 | 2016-9-10
10100 | 2019-8-17
和Aggregate
会为您提供帮助。