IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Insert into + Case


Sujet :

SQL Oracle

  1. #1
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut Insert into + Case
    Re- Forum,

    Je veux créer une table temporaire mais elle bloque à l'insertion à cause d'un CASE. Si je supprime la partie CASE, tout fonctionne parfaitement.
    Pouvez-vous me dire ce que je peux faire pour résoudre ce problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    INSERT INTO TMP_PERIOD 
     
    	VALUES 
    	(
    	TO_NUMBER(TO_CHAR(ADD_MONTHS(TO_DATE(CURRENT_DATE), - 1),'yyyymm')),
    	TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'yyyymm')),
    	TO_NUMBER(TO_CHAR(ADD_MONTHS(TO_DATE(CURRENT_DATE),-12),'yyyy')),
    	TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'yyyy')),
    	TO_NUMBER(TO_CHAR(ADD_MONTHS(TO_DATE(CURRENT_DATE),-1),'mm')),
    	TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'mm')),
    	TO_NUMBER(TO_CHAR(ADD_MONTHS(TRUNC(CURRENT_DATE,'YYYY'),-12),'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TRUNC(CURRENT_DATE,'YYYY'), 'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(LAST_DAY(ADD_MONTHS(TRUNC(CURRENT_DATE,'YYYY'),-1)), 'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(LAST_DAY(ADD_MONTHS(TRUNC(CURRENT_DATE,'YYYY'),+11)), 'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TO_DATE(ADD_MONTHS(LAST_DAY(CURRENT_DATE),-2)+1),'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TO_DATE(ADD_MONTHS(LAST_DAY(CURRENT_DATE),-1)+1),'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TO_DATE(LAST_DAY(ADD_MONTHS(CURRENT_DATE, -1))),'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TO_DATE(LAST_DAY(ADD_MONTHS(CURRENT_DATE, 0))),'yyyymmdd')),
    	TO_NUMBER(to_char(trunc(CURRENT_DATE,'IW')-7,'yyyymmdd')),
    	TO_NUMBER(to_char(trunc(CURRENT_DATE,'IW'),'yyyymmdd')),
    	TO_NUMBER(to_char(trunc(CURRENT_DATE,'IW')-1,'yyyymmdd')),
    	TO_NUMBER(to_char(trunc(CURRENT_DATE,'IW')+6,'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(ADD_MONTHS(TRUNC(CURRENT_DATE, 'Q'), -3), 'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TRUNC(CURRENT_DATE , 'Q'), 'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(TRUNC(CURRENT_DATE , 'Q')-1, 'yyyymmdd')),
    	TO_NUMBER(TO_CHAR(ADD_MONTHS(TRUNC(CURRENT_DATE, 'Q'), +3)-1, 'yyyymmdd')),
     
    	(CASE 
    		WHEN CEIL(TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'mm'))/6) = 1 THEN TO_NUMBER(TO_CHAR(ADD_MONTHS(TRUNC(CURRENT_DATE,'YYYY'),-6), 'yyyymmdd'))
    		WHEN CEIL(TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'mm'))/6) = 2 THEN TO_NUMBER(TO_CHAR(TRUNC(CURRENT_DATE,'YYYY'), 'yyyymmdd'))
    	END)
     
    	)
    ;

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Quelle est l'erreur que tu obtiens?

  3. #3
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    ,

    Je dois mettre ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	(SELECT CASE 
    		WHEN CEIL(TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'mm'))/6) = 1 THEN TO_NUMBER(TO_CHAR(ADD_MONTHS(TRUNC(CURRENT_DATE,'YYYY'),-6), 'yyyymmdd'))
    		WHEN CEIL(TO_NUMBER(TO_CHAR(TO_DATE(CURRENT_DATE),'mm'))/6) = 2 THEN TO_NUMBER(TO_CHAR(TRUNC(CURRENT_DATE,'YYYY'), 'yyyymmdd'))
    	END from dual)

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Ok, je pense que si tu enlevais les parenthèses autour du CASE ça aurait dû fonctionner

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.0] Switch boolean avec CASE et INSERT INTO
    Par coincoin22 dans le forum MySQL
    Réponses: 2
    Dernier message: 26/02/2015, 16h57
  2. INSERT INTO avec une case à cocher
    Par JULIA_13 dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/06/2012, 14h06
  3. Réponses: 5
    Dernier message: 19/10/2006, 14h28
  4. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38
  5. Insert Into + Date
    Par BoeufBrocoli dans le forum SQL
    Réponses: 10
    Dernier message: 13/08/2003, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo