USE LoadData
go
UPDATE dbo.XimaLss SET BParent_fullname =c.BParent_fullname FROM
( SELECT a.JxsID,a.Btypeid,a.AreaID,a.BParent_fullname FROM dbo.XimaBill a INNER JOIN
(SELECT jxsid,Btypeid,MAX(Savedate) AS savedate FROM dbo.XimaBill WHERE VchType=11 GROUP BY jxsid,Btypeid ) b
ON a.Btypeid =b.Btypeid AND a.JxsID = b.jxsid AND a.Savedate =b.savedate
) c
where XimaLss.JxsID =c.JxsID AND XimaLss.Btypeid=c.Btypeid AND
XimaLss.AreaID= c.AreaID AND ISNULL( XimaLss.BParent_fullname,'') != ISNULL(c.BParent_fullname,'') ;
INSERT INTO ximalss (
JxsName ,
JxsID ,
BParent_fullname ,
Btypeid ,
Bfullname ,
Bname ,
Busercode ,
AreaID,CreateTime )
SELECT DISTINCT
XimaBill.JxsName ,
XimaBill. JxsID ,
XimaBill. BParent_fullname ,
XimaBill. Btypeid ,
XimaBill. Bfullname ,
XimaBill. Bname ,
XimaBill. Busercode ,
XimaBill. AreaID,
GETDATE() AS CreateTime FROM dbo.XimaBill INNER JOIN dbo.XimaArea ON dbo.XimaBill.AreaID = dbo.XimaArea.AreaID
WHERE VchType=11 AND
NOT EXISTS (SELECT 1 FROM dbo.XimaLss a WHERE a.JxsID =XimaBill.JxsID AND a.Btypeid=XimaBill.Btypeid AND a.AreaID= dbo.XimaBill.AreaID );
go