如何仅根据邀请创建最新记录?有超过1lak条记录,而同一jobno有超过100条记录。在一个例子中,我只接受一份工作
JobOrderID INVInvoiceid INVInvoiceNo NVStatusID INVCreateddate
----------- ------------ ------------- ---------------- ----------- ------------
2802 43877 INF220519025921 7 2019-05-22 15:16:00.000
2802 43881 NULL 1 2019-05-22 16:29:00.000
-----------------------------------------------------------------------------
select
J.JobOrderID,J.JobNo,
INV.InvoiceID as INVInvoiceid,INV.InvoiceNo as INVInvoiceNo,INV.StatusID as INVStatusID,INV.InvoiceModeID as INVInvoiceModeID,
INV.Createddate as INVCreateddate
from ffs_tbl_joborder J
inner join FFS_Tbl_AirJob AJ on AJ.AirJobID=J.JobOrderID and AJ.JobNo=J.JobNo
left join FFS_TBl_Invoice INV on INV.JobOrderID=J.JobOrderID and INV.JobNo=J.JobNo and INV.JobType=J.JobType
where J.jobno='13011900263' and INV.JobType='AirJob'
group by J.JobOrderID,J.JobType,J.JobNo,J.Status,AJ.Status,INV.InvoiceID,INV.InvoiceNo,INV.StatusID,INV.InvoiceModeID,INV.Createddate
我需要..........
JobOrderID INVInvoiceid INVInvoiceNo NVStatusID INVCreateddate
----------- ------------ ------------- ---------------- ----------- ------------
2802 43881 NULL 1 2019-05-22 16:29:00.000
答案 0 :(得分:1)
添加到查询的末尾。
ORDER BY INVCreateddate DESC
如果您只需要一个记录。将TOP 1放在“ SELECT”之后。
答案 1 :(得分:0)
SELECT J.joborderid,
J.jobtype,
J.jobno,
J.status AS JoborderStatus,
AJ.status AS AirJobStatus,
Isnull(INV.invoiceid, 0) AS INVInvoiceid,
Isnull(INV.invoiceno, 0) AS INVInvoiceNo,
Isnull(INV.statusid, 0) AS INVStatusID,
Isnull(INV.invoicemodeid, 0) AS INVInvoiceModeID
FROM ffs_tbl_joborder J
INNER JOIN ffs_tbl_airjob AJ
ON AJ.airjobid = J.joborderid
AND AJ.jobno = J.jobno
LEFT JOIN (SELECT joborderid,
jobno,
jobtype,
invoiceid,
Isnull(invoiceno, 0) AS InvoiceNo,
statusid,
invoicemodeid,
createddate,
minchk
FROM (SELECT INV.joborderid,
INV.jobno,
INV.jobtype,
INV.invoiceid,
INV.invoiceno,
INV.statusid,
INV.invoicemodeid,
INV.createddate,
Row_number()
OVER(
partition BY joborderid, jobtype
ORDER BY createddate DESC) AS Minchk
FROM ffs_tbl_invoice INV
WHERE jobtype IN ( 'AirJob', 'AirHouseJob' )) AS t1
WHERE minchk = 1) INV
ON INV.joborderid = J.joborderid
AND INV.jobno = J.jobno
AND INV.jobtype = J.jobtype
WHERE INV.jobtype IN ( 'AirJob', 'AirHouseJob' )
AND J.joborderid = 2802
GROUP BY J.joborderid,
J.jobtype,
J.jobno,
J.status,
AJ.status,
INV.invoiceid,
INV.invoiceno,
INV.statusid,
INV.invoicemodeid