cancel
Showing results for 
Search instead for 
Did you mean: 

outgoing payment Query in sap b1

datta1990
Participant
0 Kudos

Dear sir,

I have required below output,

I have run below Query, please fulfill requirements

"Outgoing Payment Query Including Document Type = JE and PU"

SELECT
	T0.[DocDate]AS'Payment Date', 
	T0.[DocNum]AS'DocNum',CASEWHEN T1.InvType =18THEN'PU'WHEN T1.InvType =30THEN'JE'ENDAS'Document Type',
	T0.[CardCode]AS'Vendor Code', 
	T0.[CardName]AS'Vendor Name', 
	T3.[DocNum]AS'Vendor Invoice', 
	T3.[NumAtCard]AS'Vendor Invoice Ref', 
	T3.[DocTotal]AS'Invoice Amount',CaseWhen T0.[CashSum]>0Then'Cash'When T0.[CreditSum]>0Then'Credit Card'When T0.[TrsfrSum]>0Then'Wire'Else'Check'EndAS'Paid By', 
	T2.[CheckNum]AS'Check #', 
	T0.[TrsfrRef]AS'Wire Ref', 
	T0.[DocTotal]AS'Paid Amount'FROM 
	OVPM T0 
	INNERJOIN VPM2 T1 ON T1.DocNum = T0.DocEntry
	LEFTJOIN VPM1 T2 ON T1.DocNum = T2.DocNum 
	LEFTJOIN OPCH T3 ON T1.DocEntry = T3.DocEntry 
WHERE(T0.[DocDate]<=[%0]OR'[%0]'='')AND(T0.[DocDate]>=[%1]OR'[%1]'='')AND(T0.[CardName]=[%2]OR'[%2]'='')

Accepted Solutions (1)

Accepted Solutions (1)

former_member588507
Participant
0 Kudos

Hi datta,

Please close the question by clicking the 'Correct answer' link below.It will make it easier for others to benefit from your question.

SELECT    
	     ovpm.DocEntry
	    ,OVPM.DOCNUM   AS  'Voucher No.'
	    ,OVPM.DOCDATE  AS  'Voucher Date'
		,OVPM.CardCode AS  'Vendor Code'
		,OVPM.CardName AS  'Vendor Name'
		,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.DocNum
					  WHEN VPM2.INVTYPE=19 THEN ORPC.DocNum END)    AS    'Invoice No.'
		,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.NumAtCard
					  WHEN VPM2.INVTYPE=19 THEN ORPC.NumAtCard END) AS    'Vendor Invoice Reference.'
		,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.DocDate
					  WHEN VPM2.INVTYPE=19 THEN ORPC.DocDate END)   AS    'Vendor Invoice Date'
		,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.DocTotal
					  WHEN VPM2.INVTYPE=19 THEN ORPC.DocTotal END)  AS    'Bill Amount'
		
	 
		,(SELECT CASE WHEN VPM2.INVTYPE<>'' OR VPM2.INVTYPE<>'NULL' THEN  ( SELECT CASE WHEN VPM2.INVTYPE=19   THEN (-VPM2.SUMAPPLIED)
						WHEN VPM2.INVTYPE<>19 THEN VPM2.SUMAPPLIED  END )
						WHEN VPM4.AcctCode<>'' OR VPM4.AcctCode<>'NULL' THEN VPM4.SUMAPPLIED
						ELSE OVPM.DocTotal END) AS 'Line Total Payment Amt'
		,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN opch.DocTotal
										WHEN VPM2.INVTYPE=19 THEN (-ORPC.DocTotal ) END) 'Invoice Doc Total'
		,(OPCH.DOCTOTAL- vpm2.SumApplied) 'Due Amt'
		 ,OVPM.DOCTOTAL AS 'Outgoing payment Doc total'
		,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN 'A/P Invoice'
					  WHEN VPM2.INVTYPE=19 THEN 'Credit Note'
					  WHEN vpm2.InvType=46 then 'Outgoing Payment'
				      WHEN VPM2.InvType=23 THEN 'Incoming Payment' 
					  WHEN VPM2.InvType=30 THEN 'Journal Entry'
					  WHEN VPM2.InvType=-2 THEN 'Opening Balance' ELSE 'Payment on Account ' END) 'Base Document Type'
		 ,VPM1.CHECKNUM 'Cheque No.' 
		 ,(CASE WHEN (ISNULL(OVPM.CashSum,0) <> 0 ) THEN 'Cash Transfer' 
			WHEN (ISNULL(OVPM.[CheckSum],0) <> 0 ) THEN 'Cheque Transfer'
			WHEN (ISNULL(OVPM.TrsfrSum,0) <> 0 ) THEN 'NEFT' 
			WHEN OJDT.TransType = '30' THEN 'JEs' 
			ELSE ''
			 END) AS 'Transaction Type'
		
                      
FROM         ODSC (NOLOCK) RIGHT OUTER JOIN
                      OVPM (NOLOCK) LEFT OUTER JOIN
                      VPM4 (NOLOCK) ON OVPM.DOCENTRY = VPM4.DOCNUM LEFT OUTER JOIN
                      VPM1 (NOLOCK) ON OVPM.DOCENTRY = VPM1.DOCNUM LEFT OUTER JOIN
                      OACT (NOLOCK) ON OVPM.TRSFRACCT = OACT.ACCTCODE ON ODSC.BANKCODE = VPM1.BANKCODE LEFT OUTER JOIN
                      VPM2 (NOLOCK) ON OVPM.DOCENTRY = VPM2.DOCNUM
                      LEFT OUTER JOIN OPCH (NOLOCK) ON OPCH.DOCENTRY=VPM2.DOCENTRY AND VPM2.INVTYPE=18
                      LEFT OUTER JOIN ORPC (NOLOCK) ON ORPC.DocEntry=VPM2.DocEntry AND VPM2.INVTYPE=19
                      LEFT OUTER JOIN OJDT (NOLOCK) ON OJDT.TRANSID=OPCH.TRANSID
                      LEFT OUTER JOIN OJDT as X (NOLOCK) ON x.TRANSID=ORPC.TRANSID
                      LEFT OUTER JOIN OJDT AS Y (NOLOCK) ON Y.TransId=VPM2.DocEntry AND VPM2.InvType IN (23,46,30)
                     
                      LEFT JOIN OCRD (NOLOCK) ON OCRD.CARDCODE=OVPM.CARDCODE
WHERE     OVPM.DocDate =(SELECT CONVERT(date, getdate()))
GROUP BY    OVPM.DOCNUM, OVPM.DOCDATE, OVPM.CARDNAME,OVPM.CARDCODE,  OVPM.DOCTOTAL, 
 VPM1.CHECKNUM,  OPCH.DOCTOTAL,VPM2.SUMAPPLIED,OPCH.DOCNUM,OPCH.NumAtCard,ORPC.DocTotal
,OJDT.Number,X.Number,Y.Number,ORPC.DocNum,ORPC.NumAtCard ,OPCH.DocDate,ORPC.DocDate,VPM2.INVTYPE,VPM4.AcctCode,VPM4.SUMAPPLIED
,VPM1.CHECKSUM,ovpm.DocEntry,OVPM.CashSum,OVPM.[CheckSum],OVPM.TrsfrSum,OJDT.TransType
order by
ovpm.DocEntry asc

Answers (2)

Answers (2)

former_member588507
Participant
0 Kudos

Hi Datta,

Can you tell me which type of transactions missed in the given query by me?

former_member588507
Participant
0 Kudos

You can contact me at 9140891270.

datta1990
Participant
0 Kudos

Thank you Satish sir,

I have received below Query from your side. If any problem i will update

SELECT ovpm.DocEntry ,OVPM.DOCNUM AS 'Voucher No.' ,OVPM.DOCDATE AS 'Voucher Date' ,OVPM.CardCode AS 'Vendor Code' ,OVPM.CardName AS 'Vendor Name' ,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.DocNum WHEN VPM2.INVTYPE=19 THEN ORPC.DocNum END) AS 'Invoice No.' ,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.NumAtCard WHEN VPM2.INVTYPE=19 THEN ORPC.NumAtCard END) AS 'Vendor Invoice Reference.' ,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.DocDate WHEN VPM2.INVTYPE=19 THEN ORPC.DocDate END) AS 'Vendor Invoice Date' ,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN OPCH.DocTotal WHEN VPM2.INVTYPE=19 THEN ORPC.DocTotal END) AS 'Bill Amount' ,(SELECT CASE WHEN VPM2.INVTYPE<>'' OR VPM2.INVTYPE<>'NULL' THEN ( SELECT CASE WHEN VPM2.INVTYPE=19 THEN (-VPM2.SUMAPPLIED) WHEN VPM2.INVTYPE<>19 THEN VPM2.SUMAPPLIED END ) WHEN VPM4.AcctCode<>'' OR VPM4.AcctCode<>'NULL' THEN VPM4.SUMAPPLIED ELSE OVPM.DocTotal END) AS 'Line Total Payment Amt' ,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN opch.DocTotal WHEN VPM2.INVTYPE=19 THEN (-ORPC.DocTotal ) END) 'Invoice Doc Total' ,(OPCH.DOCTOTAL- vpm2.SumApplied) 'Due Amt' ,OVPM.DOCTOTAL AS 'Outgoing payment Doc total' ,(SELECT CASE WHEN VPM2.INVTYPE=18 THEN 'A/P Invoice' WHEN VPM2.INVTYPE=19 THEN 'Credit Note' WHEN vpm2.InvType=46 then 'Outgoing Payment' WHEN VPM2.InvType=23 THEN 'Incoming Payment' WHEN VPM2.InvType=30 THEN 'Journal Entry' WHEN VPM2.InvType=-2 THEN 'Opening Balance' ELSE 'Payment on Account ' END) 'Base Document Type' ,VPM1.CHECKNUM 'Cheque No.' ,(CASE WHEN (ISNULL(OVPM.CashSum,0) <> 0 ) THEN 'Cash Transfer' WHEN (ISNULL(OVPM.[CheckSum],0) <> 0 ) THEN 'Cheque Transfer' WHEN (ISNULL(OVPM.TrsfrSum,0) <> 0 ) THEN 'NEFT' WHEN OJDT.TransType = '30' THEN 'JEs' ELSE '' END) AS 'Transaction Type' FROM ODSC (NOLOCK) RIGHT OUTER JOIN OVPM (NOLOCK) LEFT OUTER JOIN VPM4 (NOLOCK) ON OVPM.DOCENTRY = VPM4.DOCNUM LEFT OUTER JOIN VPM1 (NOLOCK) ON OVPM.DOCENTRY = VPM1.DOCNUM LEFT OUTER JOIN OACT (NOLOCK) ON OVPM.TRSFRACCT = OACT.ACCTCODE ON ODSC.BANKCODE = VPM1.BANKCODE LEFT OUTER JOIN VPM2 (NOLOCK) ON OVPM.DOCENTRY = VPM2.DOCNUM LEFT OUTER JOIN OPCH (NOLOCK) ON OPCH.DOCENTRY=VPM2.DOCENTRY AND VPM2.INVTYPE=18 LEFT OUTER JOIN ORPC (NOLOCK) ON ORPC.DocEntry=VPM2.DocEntry AND VPM2.INVTYPE=19 LEFT OUTER JOIN OJDT (NOLOCK) ON OJDT.TRANSID=OPCH.TRANSID LEFT OUTER JOIN OJDT as X (NOLOCK) ON x.TRANSID=ORPC.TRANSID LEFT OUTER JOIN OJDT AS Y (NOLOCK) ON Y.TransId=VPM2.DocEntry AND VPM2.InvType IN (23,46,30) LEFT JOIN OCRD (NOLOCK) ON OCRD.CARDCODE=OVPM.CARDCODE WHERE OVPM.DocDate =(SELECT CONVERT(date, getdate())) GROUP BY OVPM.DOCNUM, OVPM.DOCDATE, OVPM.CARDNAME,OVPM.CARDCODE, OVPM.DOCTOTAL, VPM1.CHECKNUM, OPCH.DOCTOTAL,VPM2.SUMAPPLIED,OPCH.DOCNUM,OPCH.NumAtCard,ORPC.DocTotal ,OJDT.Number,X.Number,Y.Number,ORPC.DocNum,ORPC.NumAtCard ,OPCH.DocDate,ORPC.DocDate,VPM2.INVTYPE,VPM4.AcctCode,VPM4.SUMAPPLIED ,VPM1.CHECKSUM,ovpm.DocEntry,OVPM.CashSum,OVPM.[CheckSum],OVPM.TrsfrSum,OJDT.TransType order by ovpm.DocEntry asc

former_member588507
Participant
0 Kudos

Hi Datta,

Try this query:-

SELECT
	T0.[DocDate]AS'Payment Date', 
	T0.[DocNum]AS'DocNum'
	,(select CASE WHEN T1.InvType =18 THEN'PU' 
				  WHEN T1.InvType =30 THEN 'JE'
				  When T1.InvType=46 THEN 'OUTGOING'
				  WHEN T1.InvType=23 THEN 'INCOMING' END) AS 'Document Type',
	T0.[CardCode]AS'Vendor Code', 
	T0.[CardName]AS'Vendor Name', 
	T3.[DocNum]AS'Vendor Invoice', 
	T3.[NumAtCard]AS'Vendor Invoice Ref', 
	T3.[DocTotal]AS'Invoice Amount'
	,(Select Case When T0.[CashSum]>0 Then 'Cash'
		          When T0.[CreditSum]>0 Then 'Credit Card' 
		          When T0.[TrsfrSum]>0 Then 'Wire' Else'Check' End) AS 'Paid By', 
	T2.[CheckNum] AS 'Check #', 
	T0.[TrsfrRef] AS 'Wire Ref', 
	T0.[DocTotal] AS 'Paid Amount' 
	FROM OVPM T0 
	INNER JOIN VPM2 T1 ON T1.DocNum = T0.DocEntry
	LEFT JOIN VPM1 T2 ON T1.DocNum = T2.DocNum 
	LEFT JOIN OPCH T3 ON T1.DocEntry = T3.DocEntry 


WHERE 
T0.DocDate>=[%0]
AND T0.DocDate<=[%1]
AND T0.CardName=[%2]



Regards,

Satish Kumar

datta1990
Participant
0 Kudos

thank sir, some outgoing payment missed.

below query is identified outing payment data but our Query is not. please Help.

Ex. /*outgoing payment status*/

DECLARE @REPORTBY AS NVARCHAR(1) /* SELECT FROM [dbo].[OFPR] T0 */ /* WHERE */ DECLARE @DATEFROM datetime SET @DATEFROM =/* T0.F_RefDate */'[%0]' /* SELECT FROM [dbo].[OFPR] T1 */ /* WHERE */ DECLARE @DATETO datetime SET @DATETO=/* T1.T_RefDate */'[%1]' /* SET @DATEFROM = '20140101' SET @DATETO = '20140131' */ SELECT ISNULL(T01.BeginStr,'') + ' ' + CONVERT(NVARCHAR(20), T0.DOCNUM) [Voucher No.] , T0.DocDate [DATE] , T0.CardCode [CARDCODE] , T0.CardName [Vendor Name] , T0.DocCurr , T0.DocTotal [TOTAL incl. GST] , T0.DocTotalFC [TOTAL (FC) incl. GST] , T0.Comments [Remarks] , T0.JrnlMemo , T0.CounterRef [Ref 2] /*BANK CHARGES*/ , T0.BcgSum [Bank Charges], T0.BcgSumFC [Bank Charges (FC)] /*CHECK PAYMENT*/ , T2.CheckAct, T4.[AcctName], T2.Currency [Check Curr.] , T2.CheckSum, T0.CheckSumFC , T2.AcctNum, T2.BankCode /*BANK TRANSFER*/ , T0.TrsfrAcct,T6.[AcctName],T0.TrsfrSum, T0.TrsfrSumFC , T0.CashAcct,T4.[AcctName], T0.CashSum, T0.CashSumFC /*CREDIT CARD/ADJUSTMENT PAYMENT*/ , T03.CardName [ADJ. TYPE], T3.CreditAcct [ADJ. ACC.], T5.[AcctName],T0.CreditSum, T0.CredSumFC /*PAYMENT ON ACCOUNT*/ , T0.PayNoDoc, T0.NoDocSum, T0.NoDocSumFC , T0.DocRate , T0.DiffCurr FROM OVPM T0 LEFT OUTER JOIN NNM1 T01 ON T0.ObjType = T01.ObjectCode AND T0.Series = T01.Series LEFT OUTER JOIN VPM1 T2 ON T0.DocNum = T2.DocNum LEFT OUTER JOIN (VPM3 T3 LEFT OUTER JOIN OCRC T03 ON T3.CreditCard = T03.CreditCard) ON T0.DocNum = T3.DocNum left join OACT t4 on T2.CheckAct = T4.AcctCode left join OACT t5 on T5.AcctCode = t3.creditacct left join OACT T6 on t0.CashAcct = t6.AcctCode WHERE T0.DocType = 'C' AND T0.DOCDATE BETWEEN @DATEFROM AND @DATETO union all SELECT ISNULL(T01.BeginStr,'') + ' ' + CONVERT(NVARCHAR(20), T0.DOCNUM) [Voucher No.] , T0.DocDate [DATE] , T0.CardCode [CARDCODE] , T0.CardName [Vendor Name] , T0.DocCurr , T0.DocTotal [TOTAL incl. GST] , T0.DocTotalFC [TOTAL (FC) incl. GST] , T0.Comments [Remarks] , T0.JrnlMemo , T0.CounterRef [Ref 2] /*BANK CHARGES*/ , T0.BcgSum [Bank Charges], T0.BcgSumFC [Bank Charges (FC)] /*CHECK PAYMENT*/ , T2.CheckAct, T4.[AcctName], T2.Currency [Check Curr.] , T2.CheckSum, T0.CheckSumFC , T2.AcctNum, T2.BankCode /*BANK TRANSFER*/ , T0.TrsfrAcct,T6.[AcctName], T0.TrsfrSum, T0.TrsfrSumFC , T0.CashAcct,T4.[AcctName], T0.CashSum, T0.CashSumFC /*CREDIT CARD/ADJUSTMENT PAYMENT*/ , T03.CardName [ADJ. TYPE], T3.CreditAcct [ADJ. ACC.], T5.[AcctName],T0.CreditSum, T0.CredSumFC /*PAYMENT ON ACCOUNT*/ , T0.PayNoDoc, T0.NoDocSum, T0.NoDocSumFC , T0.DocRate , T0.DiffCurr FROM OVPM T0 LEFT OUTER JOIN NNM1 T01 ON T0.ObjType = T01.ObjectCode AND T0.Series = T01.Series LEFT OUTER JOIN VPM1 T2 ON T0.DocNum = T2.DocNum LEFT OUTER JOIN (VPM3 T3 LEFT OUTER JOIN OCRC T03 ON T3.CreditCard = T03.CreditCard) ON T0.DocNum = T3.DocNum left join OACT t4 on T2.CheckAct = T4.AcctCode left join OACT t5 on T5.AcctCode = t3.creditacct left join OACT T6 on t0.CashAcct = t6.AcctCode WHERE T0.DocType = 'S' AND T0.DOCDATE BETWEEN @DATEFROM AND @DATETO union all SELECT ISNULL(T01.BeginStr,'') + ' ' + CONVERT(NVARCHAR(20), T0.DOCNUM) [Voucher No.] , T0.DocDate [DATE] , T0.CardCode [CARDCODE] , T0.CardName [Vendor Name] , T0.DocCurr , T0.DocTotal [TOTAL incl. GST] , T0.DocTotalFC [TOTAL (FC) incl. GST] , T0.Comments [Remarks] , T0.JrnlMemo , T0.CounterRef [Ref 2] /*BANK CHARGES*/ , T0.BcgSum [Bank Charges], T0.BcgSumFC [Bank Charges (FC)] /*CHECK PAYMENT*/ , T2.CheckAct, T4.[AcctName], T2.Currency [Check Curr.] , T2.CheckSum, T0.CheckSumFC , T2.AcctNum, T2.BankCode /*BANK TRANSFER*/ , T0.TrsfrAcct, T6.[AcctName], T0.TrsfrSum, T0.TrsfrSumFC , T0.CashAcct,T4.[AcctName], T0.CashSum, T0.CashSumFC /*CREDIT CARD/ADJUSTMENT PAYMENT*/ , T03.CardName [ADJ. TYPE], T3.CreditAcct [ADJ. ACC.], T5.[AcctName],T0.CreditSum, T0.CredSumFC /*PAYMENT ON ACCOUNT*/ , T0.PayNoDoc, T0.NoDocSum, T0.NoDocSumFC , T0.DocRate , T0.DiffCurr FROM OVPM T0 LEFT OUTER JOIN NNM1 T01 ON T0.ObjType = T01.ObjectCode AND T0.Series = T01.Series LEFT OUTER JOIN VPM1 T2 ON T0.DocNum = T2.DocNum LEFT OUTER JOIN (VPM3 T3 LEFT OUTER JOIN OCRC T03 ON T3.CreditCard = T03.CreditCard) ON T0.DocNum = T3.DocNum left join OACT t4 on T2.CheckAct = T4.AcctCode left join OACT t5 on T5.AcctCode = t3.creditacct left join OACT T6 on t0.CashAcct = t6.AcctCode WHERE T0.DocType = 'A' AND T0.DOCDATE BETWEEN @DATEFROM AND @DATETO