2009-09-01 6 views
0

i get erreurquel est le problème avec la suite de requêtes SQL

insert into dmi_user.fct_sales_summary_cmp values SELECT A.bio_id 
                * 
ERROR at line 1: 
ORA-00936: missing expression 

sur l'exécution de requête suivante

insert into dmi_user.fct_sales_summary_cmp values SELECT A.bio_id 
,decode(A.wk_units2 - B.wk_units1,0,NULL,A.wk_units2), decode(A.wk_units2 - 
B.wk_units1,0,NULL,B.wk_units1), decode(A.wk_units3 - 
B.wk_units2,0,NULL,A.wk_units3), decode(A.wk_units3 - 
B.wk_units2,0,NULL,B.wk_units2), decode(A.wk_units4 - 
B.wk_units3,0,NULL,A.wk_units4), decode(A.wk_units4 - 
B.wk_units3,0,NULL,B.wk_units3), decode(A.wk_units5 - 
B.wk_units4,0,NULL,A.wk_units5), decode(A.wk_units5 - 
B.wk_units4,0,NULL,B.wk_units4), decode(A.wk_units6 - 
B.wk_units5,0,NULL,A.wk_units6), decode(A.wk_units6 - 
B.wk_units5,0,NULL,B.wk_units5) from cnt_sls_dm.fct_sales_summary A, 
cnt_sls_dm.fct_sales_summary B where A.bio_id=B.bio_id AND A.bio_id<>0 and 
rownum<25 AND (A.wk_units2<> B.wk_units1 or A.wk_units3<> B.wk_units2 or 
A.wk_units4<> B.wk_units3 or A.wk_units5<> B.wk_units4 or A.wk_units6<> 
B.wk_units5) 

Répondre

5

Je ne suis pas sûr de l'oracle (maintenant que la réponse se est upvoted et commenté Je suis relativement sûr ;-)), mais je pense que ce soit soit

INSERT INTO table VALUES …

ou

INSERT INTO table SELECT …

(sans mot-clé VALUES).

J'échoué, bien sûr, pour lire toute la requête ;-)

+0

+1! Soyez sûr de cela! L'instruction insert est INSERT/VALUES ou INSERT/SELECT mais pas INSERT/VALUES/SELECT. Vous insérez des valeurs ou un sous-ensemble d'une autre table, pas un mélange bizarre. :-) –

+0

Merci, maintenant en regardant upvotes je suis ;-) C'est juste que je n'ai presque jamais traité avec Oracle et la dernière fois il y a presque 10 ans et vous attendez toujours des syntaxes bizarres de biggies :) –

0

Vous n'avez probablement pas besoin du mot « valeurs » dans votre requête.

0
INSERT INTO TABLE1(COL1,COL2) SELECT FIELD1,FIELD2 FROM TABLE2 
0

La suite devrait fonctionner correctement.

IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
     WHERE TABLE_NAME = 'T1') 
    DROP TABLE T1 
GO 

CREATE TABLE T1 (column_1 int, column_2 varchar(30)) 
GO 

Insert into T1 Values (1,2) 
Go 
insert into T1 select 1,2 

GO 
select * from T1 

Je suppose que, si vous supprimez vos valeurs mot-clé, il devrait être bien

Questions connexes