Я пытаюсь найти способ динамического изменения дат в поле «Самая ранняя дата», поэтому, если TotalShipped = TotalOrdered , тогда я хочу взять самую раннюю дату, когда два поля не равны друг другу.
Это пример того, как данные в настоящее время выглядят
CREATE TABLE mytable (
fsono INT
, NAME VARCHAR(30)
, TS int
, [TO] int
, [Date] date
);
INSERT INTO mytable (fsono, NAME, TS, [TO], [Date])
VALUES
(1,'039069',1,1,'2019-3-19')
, (2,'039069',1,1,'2019-3-19')
, (3,'039069',1,0,'2019-3-20')
, (4,'039069',1,0,'2019-3-21');
SELECT
sorels.fsono,
sorels.finumber,
sorels.frelease,
fshipbook+fshipbuy+fshipmake as totalshipped,
fjoqty + fbook + fbqty as totalordered,
sorels.fduedate
FROM m2mdata35.dbo.sorels
INNER JOIN somast on sorels.fsono=somast.fsono
INNER JOIN soitem on sorels.fsono=soitem.fsono AND sorels.finumber=soitem.finumber
LEFT JOIN inmastx on soitem.fpartno=inmastx.fpartno and soitem.fpartrev=inmastx.frev
LEFT JOIN jomast on sorels.fstatus=jomast.fjobno
LEFT JOIN slcdpmx on somast.fcustno=slcdpmx.fcustno
LEFT JOIN syphon ON somast.fcontact=syphon.fcontact AND somast.fcustno=syphon.fcsourceid
WHERE LEFT(somast.fstatus,1)<>'C' and fsocoord<>'IFP' and fsocoord<>'711'
and somast.fsono='039069'
Order By sorels.fsono, sorels.fduedate, sorels.finumber, sorels.frelease
Вот как бы я хотел, чтобы результаты выглядели как
CREATE TABLE myresults (
fsono INT
, NAME VARCHAR(30)
, TS int
, [TO] int
, [Date] date
, Earliest_Date date
);
INSERT INTO myresults (fsono, NAME, TS, [TO], [Date], Earliest_Date)
VALUES
(1,'039069',1,1,'2019-3-19','2019-3-20')
, (2,'039069',1,1,'2019-3-19','2019-3-20')
, (3,'039069',1,0,'2019-3-20','2019-3-20')
, (4,'039069',1,0,'2019-3-21','2019-3-20');