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

Langage SQL Discussion :

Doublure de champs dans un select :P


Sujet :

Langage SQL

  1. #21
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Le MCD manque un peu de restriction vu qu'il y a des 0,N partout


    Bref j'imagine que si un site peut avoir plusieurs actifs, la reciproque est fausse, donc il y a bien un souci de données pour les NUMIMMO 2987 et 4186.

    Peux tu effectuer la requete suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *                  
    FROM rim_car c
    WHERE Lower(car_lbl) IN ('pin','puk','imei')

  2. #22
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    J'ai des n car mvt est une relation et non un table (sous le modèle Merise).
    Sur la (capture sql, cela est normal qu'il y ai des doublons car sur le reste de mon MCD, il y a un liaison avec d'autres tables sur car

  3. #23
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    Ca ne te parais pas bon ?

  4. #24
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Non c'est clairement pas bon.

    rim_car est (semble-t-il) une table de référence des caractéristiques. Et tu as 8 fois la même caractéristique (imei) dont une fois avec un label en majuscule.

    D'un point de vue de la modélisation c'est très douteux.

    Donc:
    - Soit tu es sur une base de dev, et il faut que tu vérifies que ta base est cohérente par rapport à la prod
    - Soit tu es encore en phase de conception, dans ce cas il y a du boulot en amont (qui fait les insertions dans rim_car ? il ne devrait pas en créer une nouvelle si une de même nom existe)
    - Soit c'est comme ça en prod et dans ce cas la requête est à revoir si tu ne peux pas faire de refonte plus globale. A vérifier quand même que tous ces points ne soient proviennent pas de bugs plus en amont.

    Dans tous les cas, sans avoir accès à ta base de données je vais avoir du mal à t'aider plus. Je ne peux pas deviner chaque cas particulier existant (du genre les plusieurs CODESITE par actif) et la façon dont tu veux les traiter fonctionnellement.

  5. #25
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    En fait la base est déjà toute faite et je ne peux la toucher car elle est en production avec un outil qui fonctionne déjà dessus.
    Aujourd'hui, je dois ajouter des fonctionnalitées à l'application.

    Donc je dois me débrouiller avec ca. Surtout que cette foutu requete est pour un fonctionnalité qui sera peux utilisée mais très importante.

    Pour l'accès à la base je ne paux malheureusement te la fournir mais je peux te donner un morceau du script de la structure si tu le souhaites.

    Dis moi se qu'il te faut. Voila Merci pour ton aide Drizzt

  6. #26
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    Heyyyy ! J'ai trouvé un petit truc qui résoud tout.
    J'utilise un pivot ! Comment dire.... magique !

    Pou ceux que ca pourrais aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT valeur,
     
    MAX (DECODE (Lower(car_lbl), 'imei', pos_val, NULL)) AS IMEI, 
    MAX (DECODE (Lower(car_lbl), 'pin', pos_val, NULL)) AS PIN, 
    MAX (DECODE (Lower(car_lbl), 'puk', pos_val, NULL)) AS PUK 
     
    FROM (SELECT pos_act_num, car_lbl, pos_val FROM tab_pos JOIN tab_car ON car_num=pos_car_num) 
    GROUP BY pos_act_num
    ORDER BY pos_act_num
    Merci beaucoup Drizzt pour ton temps passé à m'aider... T'es un chef.

    Bonne journée.

    PS : je suis mauvais en sql mais si t'as besoin en dev fais signe ca me fera plaisir. ++

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. fusionner plusieurs lignes d'un champs dans un select?
    Par gwena54 dans le forum Requêtes
    Réponses: 13
    Dernier message: 25/01/2008, 14h29
  2. Format un champ dans un select
    Par lessoy dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/04/2007, 17h14
  3. Nb maxi de champs dans un SELECT
    Par tomy29 dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/12/2006, 09h59
  4. [interbase][SQL] concatener 2 champs dans le select
    Par Harry dans le forum Bases de données
    Réponses: 10
    Dernier message: 09/03/2006, 07h45
  5. Réponses: 13
    Dernier message: 20/07/2004, 09h54

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