hi all
I am a new bie to SQL
I am trying to convert an ACCESS query to SQL but getting erros like "command not ended properly" or "missing keywords"
The table to be updated:-- positions
To be Updated from :-- Imp_Positions_n ew
the Query is
[CODE=sql]UPDATE IMP_POSITIONS_N EW INNER JOIN POSITIONS
ON IMP_POSITIONS_N EW.JOBCODE = POSITIONS.POSIT ION_CODE
SET
POSITIONS.CUSTO M_MINIMUM = IIf([IMP_POSITIONS_N EW].[Grade]='MBC',[IMP_POSITIONS_N EW].[MRR_LOW],[IMP_POSITIONS_N EW].[MIN_RT_ANNUAL]),
POSITIONS.CUSTO M_MIDPOINT = IIf([IMP_POSITIONS_N EW].[Grade]='MBC',[IMP_POSITIONS_N EW].[MRP],[IMP_POSITIONS_N EW].[MID_RT_ANNUAL]),
POSITIONS.CUSTO M_MAXIMUM = IIf([IMP_POSITIONS_N EW].[Grade]='MBC',[IMP_POSITIONS_N EW].[MRR_HIGH],[IMP_POSITIONS_N EW].[MAX_RT_ANNUAL]);[/CODE]
Here is what I am trying to do
[CODE=sql]UPDATE POSITIONS SET
POSITIONS.CUSTO M_MINIMUM = CASE
WHEN IMP_POSITIONS_N EW.Grade='MBC'
THEN IMP_POSITIONS_N EW.MRR_LOW
ELSE IMP_POSITIONS_N EW.MRR_LOW
END,
POSITIONS.CUSTO M_MIDPOINT = CASE
WHEN IMP_POSITIONS_N EW.Grade='MBC'
THEN IMP_POSITIONS_N EW.MRP
ELSE IMP_POSITIONS_N EW.MID_RT_ANNUA L
END,
POSITIONS.CUSTO M_MAXIMUM = CASE
WHEN IMP_POSITIONS_N EW.Grade='MBC'
THEN IMP_POSITIONS_N EW.MRR_HIGH
ELSE IMP_POSITIONS_N EW.MAX_RT_ANNUA L
END
from IMP_POSITIONS_N EW
WHERE POSITIONS.POSIT ION_CODE = IMP_POSITIONS_N EW.JOBCODE[/CODE]
I have to use CASE expression to convert this
Please guide me where I am wrong and If possible please provide me with the corect query
I am a new bie to SQL
I am trying to convert an ACCESS query to SQL but getting erros like "command not ended properly" or "missing keywords"
The table to be updated:-- positions
To be Updated from :-- Imp_Positions_n ew
the Query is
[CODE=sql]UPDATE IMP_POSITIONS_N EW INNER JOIN POSITIONS
ON IMP_POSITIONS_N EW.JOBCODE = POSITIONS.POSIT ION_CODE
SET
POSITIONS.CUSTO M_MINIMUM = IIf([IMP_POSITIONS_N EW].[Grade]='MBC',[IMP_POSITIONS_N EW].[MRR_LOW],[IMP_POSITIONS_N EW].[MIN_RT_ANNUAL]),
POSITIONS.CUSTO M_MIDPOINT = IIf([IMP_POSITIONS_N EW].[Grade]='MBC',[IMP_POSITIONS_N EW].[MRP],[IMP_POSITIONS_N EW].[MID_RT_ANNUAL]),
POSITIONS.CUSTO M_MAXIMUM = IIf([IMP_POSITIONS_N EW].[Grade]='MBC',[IMP_POSITIONS_N EW].[MRR_HIGH],[IMP_POSITIONS_N EW].[MAX_RT_ANNUAL]);[/CODE]
Here is what I am trying to do
[CODE=sql]UPDATE POSITIONS SET
POSITIONS.CUSTO M_MINIMUM = CASE
WHEN IMP_POSITIONS_N EW.Grade='MBC'
THEN IMP_POSITIONS_N EW.MRR_LOW
ELSE IMP_POSITIONS_N EW.MRR_LOW
END,
POSITIONS.CUSTO M_MIDPOINT = CASE
WHEN IMP_POSITIONS_N EW.Grade='MBC'
THEN IMP_POSITIONS_N EW.MRP
ELSE IMP_POSITIONS_N EW.MID_RT_ANNUA L
END,
POSITIONS.CUSTO M_MAXIMUM = CASE
WHEN IMP_POSITIONS_N EW.Grade='MBC'
THEN IMP_POSITIONS_N EW.MRR_HIGH
ELSE IMP_POSITIONS_N EW.MAX_RT_ANNUA L
END
from IMP_POSITIONS_N EW
WHERE POSITIONS.POSIT ION_CODE = IMP_POSITIONS_N EW.JOBCODE[/CODE]
I have to use CASE expression to convert this
Please guide me where I am wrong and If possible please provide me with the corect query
Comment