please help me, I got the Join Predicate not valid error for the below sql, it will be very messy but please help me if you can. Thanks in advance.
SELECT department.eaaitm,
RIGHT(LEFT(egacdt, 6), 2),
SUM(CASE department.eaaitm
WHEN '912' THEN egacam / 2
ELSE egacam
END) AS suma,
SUM(CASE department.eaaitm
WHEN '700' THEN CASE data.eaaicl
WHEN '400' THEN -egacam
WHEN '402' THEN -egacam
WHEN '404' THEN -egacam
ELSE egacam
END
WHEN '912' THEN egacam / 2
ELSE egacam
END / cuarat)
FROM mvxcdtpusd.fchacc department,
mvxcdtpusd.fchacc data
LEFT JOIN mvxcdtpusd.fgledg
ON data.eaaitm = egait1
AND data.eacono = 888
AND data.eaaitp = 1
AND egcono = 888
AND ( egdivi = ?
AND ( data.eadivi = ?
OR data.eadivi = '' ) )
AND ( egdivi = ?
AND ( department.eadivi = ?
OR department.eadivi = '' ) )
AND egacdt >= ?
AND egacdt <= ?
JOIN mvxcdtpusd.ccurra
ON ( cudivi = ( CASE egdivi
WHEN '300' THEN egdivi
ELSE '100'
END )
AND cucucd = 'USD'
AND LEFT(cucutd, 6) = LEFT(egacdt, 6)
AND ( ( cudivi = '300'
AND cucrtp = '50' )
OR ( cudivi <> '300'
AND culocd = 'USD'
AND cucrtp = '1' ) )
AND RIGHT(cucutd, 2) = '01' )
WHERE egait3 = department.eaaitm
AND department.ealccd IN ( 0, 1 )
AND department.eacono = 888
AND department.eaaitp = 3
AND data.eaaicl >= '400'
AND ( department.eaaitm IN ( '000' )
OR department.eaaitm IN ( '912' )
AND data.eaaitm NOT IN ( '5707310' )
OR department.eaaitm IN ( '914', '808' )
AND data.eaaitm NOT IN ( '5707310' ) )
GROUP BY department.eaaitm,
RIGHT(LEFT(egacdt, 6), 2)
ORDER BY department.eaaitm,
RIGHT(LEFT(egacdt, 6), 2)
———————————– Ans:———————————–
i have solved already. Thanks All
SELECT department.eaaitm,
RIGHT(LEFT(egacdt, 6), 2),
SUM(CASE department.eaaitm
WHEN '912' THEN egacam / 2
ELSE egacam
END) AS suma,
SUM(CASE department.eaaitm
WHEN '700' THEN CASE data.eaaicl
WHEN '400' THEN -egacam
WHEN '402' THEN -egacam
WHEN '404' THEN -egacam
ELSE egacam
END
WHEN '912' THEN egacam / 2
ELSE egacam
END / cuarat)
FROM mvxcdtpusd.fchacc department,
mvxcdtpusd.fchacc data
LEFT JOIN mvxcdtpusd.fgledg
ON data.eaaitm = egait1
AND data.eacono = 888
AND data.eaaitp = 1
AND egcono = 888
AND ( egdivi = 100
AND ( data.eadivi = 100
OR data.eadivi = '' ) )
AND egacdt >= 20120101
AND egacdt <= 20120131
JOIN mvxcdtpusd.ccurra
ON ( cudivi = ( CASE egdivi
WHEN '300' THEN egdivi
ELSE '100'
END )
AND cucucd = 'USD'
AND LEFT(cucutd, 6) = LEFT(egacdt, 6)
AND ( ( cudivi = '300'
AND cucrtp = '50' )
OR ( cudivi <> '300'
AND culocd = 'USD'
AND cucrtp = '1' ) )
AND RIGHT(cucutd, 2) = '01' )
WHERE egait3 = department.eaaitm
AND department.ealccd IN ( 0, 1 )
AND department.eacono = 888
AND department.eaaitp = 3
AND data.eaaicl >= '400'
AND ( department.eaaitm IN ( '000' )
OR department.eaaitm IN ( '912' )
AND data.eaaitm NOT IN ( '5707310' )
OR department.eaaitm IN ( '914', '808' )
AND data.eaaitm NOT IN ( '5707310' ) )
AND ( egdivi = 100
AND ( department.eadivi = 100
OR department.eadivi = '' ) )
GROUP BY department.eaaitm,
RIGHT(LEFT(egacdt, 6), 2)
ORDER BY department.eaaitm,
RIGHT(LEFT(egacdt, 6), 2)
I’m not sure what system you are using to pass parameters to your query but I imagine it replaces the question marks (?) shown below
In any case the error you are getting is because one of those is not right. Please show how you are passing parameters to this query.