Was ich versuche zu bekommen ist eine Liste der letzten Transaktion für jedes Konto, die etwa 300 ergeben sollte. Dann möchte ich nebenbei die vorherige Transaktion auflisten.SQL - Liste der letzten Transaktionen und Transaktionen vor der letzten
Also ich benutze die MAX (Transaction_Date), die die Liste der letzten Transaktionen in Ordnung bringen. Das Problem ist, wenn ich versuche, die Transaktion vor der letzten Transaktion zu erhalten.
Es multipliziert die Ergebnisse auf etwa 4000, wenn die Summe immer noch 300 sein sollte. Es scheint ein Problem mit der Verknüpfung zu geben.
From Se2FAST.dbo.Cm_Opt_Poh_PolicyHdr_S CONT
JOIN BASE BASE
ON BASE.Poh_ID = CONT.POH_ID
INNER JOIN Se2FAST.dbo.Cm_Opt_Pch_PolicyCovHdr_S policyCov
ON CONT.Poh_ID = policyCov.Pch_POLICYHDRID
AND policycov.pch_sequence = 1
INNER JOIN [dbo].[Cm_Sys_Pst_PolicyStatus_I] PST
ON PST.Pst_ID_I = CONT.Poh_Status
-- GETS THE LAST TRANSACTION
LEFT JOIN se2Fast.DBO.CM_OPT_TXH_TRXHDR_S TRANS
ON TRANS.TXH_POLICYHDRID = CONT.POH_ID
AND TRANS.txh_effectivedate < (SELECT MAX(TRAN1.txh_effectivedate) FROM se2Fast.DBO.CM_OPT_TXH_TRXHDR_S TRAN1 WHERE TRAN1.TXH_POLICYHDRID = CONT.POH_ID)
LEFT JOIN se2Fast.dbo.Cm_Opt_Tre_TrxRes_S AS TRX_RES
ON TRANS.Txh_ID = TRX_RES.Tre_TRXHDRID
LEFT JOIN se2Fast.dbo.Cm_Sys_Txt_TrxType_I TXN_DES
ON TRANS.Txh_TRXTYPEID = TXN_DES.Txt_ID_I
LEFT JOIN se2Fast.dbo.Cm_Sys_Txs_TrxStatus_I TXN_STAT
ON Trans.Txh_TRXSTATUS = TXN_STAT.Txs_ID_I
-- GETS THE 2ND TO LAST TRANSACTION
LEFT JOIN se2Fast.DBO.CM_OPT_TXH_TRXHDR_S TRANSX
ON TRANSX.TXH_POLICYHDRID = CONT.POH_ID
AND TRANS.txh_effectivedate < ( SELECT MAX(TRANA.txh_effectivedate)
FROM se2Fast.DBO.CM_OPT_TXH_TRXHDR_S TRANA
WHERE TRANA.TXH_POLICYHDRID = CONT.POH_ID
AND TXN_STAT.Txs_DESCRIPTION_I = 'Completed')
LEFT JOIN se2Fast.dbo.Cm_Sys_Txt_TrxType_I TXN_DESX
ON TRANSX.Txh_TRXTYPEID = TXN_DESX.Txt_ID_I
LEFT JOIN se2Fast.dbo.Cm_Sys_Txs_TrxStatus_I TXN_STATX
ON TransX.Txh_TRXSTATUS = TXN_STATX.Txs_ID_I
LEFT JOIN se2Fast.dbo.Cm_Opt_Tre_TrxRes_S AS TRX_RESX
ON TRANSX.Txh_ID = TRX_RESX.Tre_TRXHDRID
Ich glaube nicht, dass seine die Ergebnisse den Weg zu geben ich will. Ich möchte sie nebeneinander statt in einer Spalte. Transaktionsdatum1, TransaktionsStatus1, Transaktionsdatum2, TransaktionsStatus2. Verstehen? – ChrisM
@ChrisM Sie könnten einen Self-Join der Cte dafür verwenden, ich habe meine Antwort aktualisiert. – SqlZim
Seltsam. "Konvertierungsfehler beim Konvertieren des Varchar-Werts rn in den Datentyp int." – ChrisM