Zack
asked on
SQL - Syntax Query Damn Bracket :)
Hi EE,
Having an issue with the last bracket in this query;
Incorrect syntax near ')'.
Any assistance is appreciated.
Thank you.
Having an issue with the last bracket in this query;
SELECT DISTINCT A.* FROM (SELECT
a.ACCOUNTNUM, CAST(a.TRANSDATE AS date) AS transdate, a.VOUCHER, a.INVOICE, a.CURRENCYCODE, a.TXT, c.NAME, CAST(a.DUEDATE AS date)
AS duedate, d.CUSTGROUP, a.AMOUNTCUR, a.SETTLEAMOUNTCUR, a.SETTLEAMOUNTMST, a.SETTLEAMOUNTMST AS ORIGSETTELEMST, a.AMOUNTMST,
d.CREDITMAX, a.LASTSETTLEVOUCHER, f.INVOICEID AS lastsettleinvoice, a.TRANSTYPE, a.EXCHADJUSTMENT AS SELISIHKURS,
CASE WHEN A.AMOUNTMST < 0 THEN A.AMOUNTMST ELSE 0 END AS MSTCREDIT,
CASE WHEN A.AMOUNTCUR < 0 THEN A.AMOUNTCUR ELSE 0 END AS CURCREDIT, CASE WHEN A.AMOUNTMST > 0 THEN A.AMOUNTMST ELSE 0 END AS MSTDEBET,
CASE WHEN A.AMOUNTCUR > 0 THEN A.AMOUNTCUR ELSE 0 END AS CURDEBET,
CASE WHEN a.AMOUNTMST - a.SETTLEAMOUNTMST <> 0 THEN a.AMOUNTMST - a.SETTLEAMOUNTMST + a.EXCHADJUSTMENT ELSE a.AMOUNTMST - a.SETTLEAMOUNTMST
END AS SISA, CASE WHEN A.CURRENCYCODE <> 'AUD' THEN a.AMOUNTCUR - a.SETTLEAMOUNTCUR ELSE 0 END AS SISACUR, CASE WHEN LEFT(A.VOUCHER, 4)
<> 'CINV' THEN A.VOUCHER ELSE '' END AS REFERENSI
, CASE WHEN LEFT(A.INVOICE ,3) IN( 'FTX', 'CFT','NK/','ND/') and LEFT(A.INVOICE ,3) not IN( 'SCN') THEN 'FREETEXT'
ELSE CASE WHEN SUBSTRING(A.INVOICE,2,2)='KR' THEN 'PAYMENT'
ELSE CASE WHEN LEFT(A.INVOICE ,3) IN( 'SCN') THEN 'RETURN'
ELSE CASE WHEN LEFT(A.VOUCHER ,4) IN ('15TM','16TM','ARME') THEN 'PAYMENT'
ELSE CASE WHEN A.AMOUNTMST > 0 AND LEFT(A.INVOICE ,3)NOT IN( 'FTX', 'CFT', 'SCN','NK/','ND/') AND LEFT(A.VOUCHER ,4) NOT IN ('15TM','16TM','ARME') AND SUBSTRING(A.INVOICE,2,2)<>'KR' THEN 'PENJUALAN'
--ELSE CASE WHEN A.AMOUNTMST > 0 AND LEFT(A.INVOICE ,3)NOT IN( 'FTX', 'CFT', 'SCN','NK/','ND/') AND LEFT(A.VOUCHER ,4) IN ('15TM','16TM','ARME') THEN 'PAYMENT'
ELSE CASE WHEN A.AMOUNTMST < 0 AND LEFT(A.INVOICE ,3) NOT IN( 'FTX', 'CFT','SCN','NK/','ND/') THEN 'PAYMENT'
END END END END END END
REPORT_POST ,a.RECID
FROM CUSTTRANS AS a LEFT OUTER JOIN
CUSTTABLE AS b ON a.ACCOUNTNUM = b.ACCOUNTNUM LEFT OUTER JOIN
DIRPARTYTABLE AS c ON b.PARTY = c.RECID LEFT OUTER JOIN
CUSTTABLE AS d ON a.ACCOUNTNUM = d.ACCOUNTNUM LEFT OUTER JOIN
CUSTINVOICEJOUR AS f ON a.LASTSETTLEVOUCHER = f.LEDGERVOUCHER LEFT OUTER JOIN)) A
Msg 102, Level 15, State 1, Line 24Incorrect syntax near ')'.
Any assistance is appreciated.
Thank you.
ASKER
Hi Ryan,
Same issue again when I remove a bracket:
Same issue again when I remove a bracket:
SELECT DISTINCT A.* FROM (SELECT
a.ACCOUNTNUM, CAST(a.TRANSDATE AS date) AS transdate, a.VOUCHER, a.INVOICE, a.CURRENCYCODE, a.TXT, c.NAME, CAST(a.DUEDATE AS date)
AS duedate, d.CUSTGROUP, a.AMOUNTCUR, a.SETTLEAMOUNTCUR, a.SETTLEAMOUNTMST, a.SETTLEAMOUNTMST AS ORIGSETTELEMST, a.AMOUNTMST,
d.CREDITMAX, a.LASTSETTLEVOUCHER, f.INVOICEID AS lastsettleinvoice, a.TRANSTYPE, a.EXCHADJUSTMENT AS SELISIHKURS,
CASE WHEN A.AMOUNTMST < 0 THEN A.AMOUNTMST ELSE 0 END AS MSTCREDIT,
CASE WHEN A.AMOUNTCUR < 0 THEN A.AMOUNTCUR ELSE 0 END AS CURCREDIT, CASE WHEN A.AMOUNTMST > 0 THEN A.AMOUNTMST ELSE 0 END AS MSTDEBET,
CASE WHEN A.AMOUNTCUR > 0 THEN A.AMOUNTCUR ELSE 0 END AS CURDEBET,
CASE WHEN a.AMOUNTMST - a.SETTLEAMOUNTMST <> 0 THEN a.AMOUNTMST - a.SETTLEAMOUNTMST + a.EXCHADJUSTMENT ELSE a.AMOUNTMST - a.SETTLEAMOUNTMST
END AS SISA, CASE WHEN A.CURRENCYCODE <> 'AUD' THEN a.AMOUNTCUR - a.SETTLEAMOUNTCUR ELSE 0 END AS SISACUR, CASE WHEN LEFT(A.VOUCHER, 4)
<> 'CINV' THEN A.VOUCHER ELSE '' END AS REFERENSI
, CASE WHEN LEFT(A.INVOICE ,3) IN( 'FTX', 'CFT','NK/','ND/') and LEFT(A.INVOICE ,3) not IN( 'SCN') THEN 'FREETEXT'
ELSE CASE WHEN SUBSTRING(A.INVOICE,2,2)='KR' THEN 'PAYMENT'
ELSE CASE WHEN LEFT(A.INVOICE ,3) IN( 'SCN') THEN 'RETURN'
ELSE CASE WHEN LEFT(A.VOUCHER ,4) IN ('15TM','16TM','ARME') THEN 'PAYMENT'
ELSE CASE WHEN A.AMOUNTMST > 0 AND LEFT(A.INVOICE ,3)NOT IN( 'FTX', 'CFT', 'SCN','NK/','ND/') AND LEFT(A.VOUCHER ,4) NOT IN ('15TM','16TM','ARME') AND SUBSTRING(A.INVOICE,2,2)<>'KR' THEN 'PENJUALAN'
--ELSE CASE WHEN A.AMOUNTMST > 0 AND LEFT(A.INVOICE ,3)NOT IN( 'FTX', 'CFT', 'SCN','NK/','ND/') AND LEFT(A.VOUCHER ,4) IN ('15TM','16TM','ARME') THEN 'PAYMENT'
ELSE CASE WHEN A.AMOUNTMST < 0 AND LEFT(A.INVOICE ,3) NOT IN( 'FTX', 'CFT','SCN','NK/','ND/') THEN 'PAYMENT'
END END END END END END
REPORT_POST ,a.RECID
FROM CUSTTRANS AS a LEFT OUTER JOIN
CUSTTABLE AS b ON a.ACCOUNTNUM = b.ACCOUNTNUM LEFT OUTER JOIN
DIRPARTYTABLE AS c ON b.PARTY = c.RECID LEFT OUTER JOIN
CUSTTABLE AS d ON a.ACCOUNTNUM = d.ACCOUNTNUM LEFT OUTER JOIN
CUSTINVOICEJOUR AS f ON a.LASTSETTLEVOUCHER = f.LEDGERVOUCHER LEFT OUTER JOIN) A
Remove one of the brackets just prior to the alias a
)) A
Should be
) A
+edit.
This was referring to the first query
)) A
Should be
) A
+edit.
This was referring to the first query
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Staring me in the face the whole time thanks guys.
ASKER
Open in new window
so just try remove and execute again