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

Développement SQL Server Discussion :

Modifications de données fonction d'une table temporaire


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut Modifications de données fonction d'une table temporaire
    Bonjour j'espère que vous saurez m'aider malgré les maigres informations.

    Je vous explique mon cas je dois modifier des valeurs de tables nouvelles en fonction de valeurs d'anciennes tables.

    Par exemple un ID_TYP à 1 qui doit passer à 2 si ma donnée X = A
    ID_TYP = 2 qui doit passer à 3 si ma donnée Y = B

    Techniquement je ne suis pas une ferrari en SQL mais il me semble falloir passer par une table temporaire.
    et fonctionner en IF avec tous mes cas possibles qui irait pointer vers ma table temporaire.

    En gros à chaque ID_TYP faire correspondre sa nouvelle valeur de ma table temporaire.

    Je ne sais pas vraiment si vous voyez la chose et j'aimerai avoir votre avis, conseils techniques pour mieux appréhender le sujet

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Bonjour,
    Il est possible de passer par une seule requête, sans table temporaire, avec un CASE ou avec DECODE.

    Tatayo.

    P.S. je ne sais pas si decode est standard, donc s'il est supporté par ton SGBD (non précisé d'ailleurs).

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    DECODE appartient au dialecte Oracle.
    CASE est normalisé.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    edit : je suis sous MSql2005

    je vois tout a fait pour le case je vais voir si c'est faisable

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    Je vais poser mes questions au fur et à mesure.
    Désolé si ca vous semble un peu limité, mais je le suis

    comment, en créant une nouvelle ligne dans une table avec 10 champs, ajouter automatiquement l'incrément de mon premier champ
    (j'ai mon premier champ en identity)

    L'idée pour l'instant c'est d'avoir une ancienne ligne et de recréer une nouvelle ligne en récupérant certaines données de cette première ligne

    table temporaire ?

    sachant que je ne vais pas en avoir qu'une à gérer

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    La requête suivante remplit-elle votre besoin ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    INSERT	INTO dbo.maTable
    (
    	mesColonnes
    )
    SELECT	desColonnes
    	, CASE ID_TYP
    		WHEN 1 AND X = 'A' THEN 2
    		WHEN 2 AND Y = 'B' THEN 3
    	END
    FROM	dbo.maTable
    WHERE	...
    @++

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2013, 12h14
  2. Réponses: 15
    Dernier message: 28/10/2011, 15h45
  3. Réponses: 4
    Dernier message: 19/02/2008, 00h24
  4. Impossible de créer une table temporaire dans une fonction
    Par bossun dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/10/2007, 10h03
  5. [débutant] Résultat d'un exec dans une table temporaire
    Par amelie15 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/08/2005, 09h14

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