2016-04-03 4 views
0

Ich versuche hier, UPDATE Abfrage mit JOIN und SELECT zu verwenden, aber ich bin 3706 Fehler konfrontiert.Teradata 3706, erwarte etwas zwischen DISTINCT und LEFT Schlüsselwort

hier ist die Fehlerzeile -

Teradat error

 
UPDATE A0619IL3549_D_RPT.RPT_IS_ELIGIBILITY A2 
FROM 
(SELECT A.REP_CD, A.GEO_CD,A.MONTH_ID, B.IC_PRD AS IC_PAYOUT_FLAG, 
COALESCE(CASE 
WHEN UPPER(B.IC_PRD) = 'SEMESTERLY' THEN A.CURR_SEMESTER_FLAG 
WHEN UPPER(B.IC_PRD) = 'QUARTERLY' THEN A. CURR_QUARTER_FLAG 
ELSE '0' 
END,'0') IC_PAYOUT_FLAG 
FROM 
A0619IL3549_D_RPT.RPT_IS_ELIGIBILITY A, 
(
SELECT DISTINCT LEFT(B. REP_CD, POSITION('-' IN B.REP_CD)-1) AS REP_CD,C.GEO_CD,IC_PRD FROM 
A0619IL3549_D00_IC_MAIN.ICDM_GEO_REP_PROD A, A0619IL3549_D00_IC_MAIN.ICDM_DIM_REP B,
A0619IL3549_D00_IC_MAIN.ICDM_DIM_GEO_HIER C WHERE A.REP_SK=B.REP_SK AND A.GEO_SK=C.GEO_SK AND A.RUN_ID = (SELECT MAX(RUN_ID) FROM A0619IL3549_D00_IC_MAIN.ICDM_GEO_REP_PROD) ) B WHERE A.REP_CD = B.REP_CD AND A.GEO_CD = B.GEO_CD)A1 SET A2.IC_PAYOUT_FALG = A1.IC_PAYOUT_FLAG WHERE A1.REP_CD = A2.REP_CD AND A1.MONTH_ID = A2.MONTH_ID AND A.GEO_CD = A2.GEO_CD

+0

ich verwende Version 13.10.0.02, Teradata SQL Assistent – user2492144

+0

Ich denke, es nicht wegen eines Raums zwischen b ist. und rep_cd, oder? –

+0

Nein, ich habe den Platz entfernt und erneut ausgeführt, aber der gleiche Fehler. – user2492144

Antwort

1

LEFT ist keine gültige Teradata Funktion vor TD15.10, dann ist es ODBC-SQL, die automatisch übersetzt wird, sondern nur für SELECT.

Verwenden gültige Syntax statt:

SUBSTRING(B. REP_CD FROM 1 FOR POSITION('-' IN B.REP_CD)-1) 
+0

Hi dnoeth, Vielen Dank, dieser Fehler ist weg, aber jetzt sehe ich eine "illegale Verwendung von Aliasnamen" Fehler. dh Fehler (3993) – user2492144

+0

@ user2492144: Verwenden Sie keinen Alias ​​('A2'), verwenden Sie' RPT_IS_ELIGIBILITY' anstatt – dnoeth

+0

dnoeth, Alias ​​Fehler ist weg aber jetzt wieder 3810 ist aufgetreten, die colum/Parameter 'A0619IL3549_D_RPT.RPT_IS_ELIGIBILTY sagt. A0619IL3549_D_RPT 'Dosis existiert nicht – user2492144