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 :

Problème SQL : LIAISON TABLE INEXISTANTE


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut Problème SQL : LIAISON TABLE INEXISTANTE
    Bonjour,

    J'ai un petit souci, je m'occupe de réaliser un traitement informatique pour ma boite, sur une base SQL Server 2000.
    Je dois faire une requête sur deux tables qui ne sont pas liées, pourtant toutes deux possède un champ en commun ayant les même valeurs :
    REF_MAG (MAG_ID, MAG_REF, MAG_NOM)
    VENTES(origine, periode, mag_ref, qte, date) (pas de clé primaire)
    Je ne possède pas de MCD, je n'ai pas le droit de modifier la structure des tables, autant vous dire que mon travail est vraiment limité

    Ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select vte.mag_ref as MAG, ma.MAG_NOM_COURT, vte.qte
    from VENTES vte, REF_MAGASIN ma
    where vte.periode = '200912'
    and vte.mag_ref = ma.MAG_REF
    and vte.mag_ref != '019'
    group by vte.mag_ref, ma.MAG_NOM_COURT, vte.qte
    Malheureusement, ça ne me retourne rien, alors que je dois avoir au moins 44 lignes.

    ce n'est pas moi qui ait créé cette base, sinon il y aurait une liaison entres ces deux tables
    Est-ce que quelqu'un aurait une idée ?

    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Bonjour,

    Avez vous quelque chose si vous tapez ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT vte.mag_ref AS MAG, ma.MAG_NOM_COURT, vte.qte
    FROM VENTES vte
    join REF_MAGASIN ma on vte.mag_ref = ma.MAG_REF
    WHERE vte.periode = '200912'
    AND vte.mag_ref != '019'
    Si pas, vos filtres sont il correctement définis ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Sans les données, on ne peut pas t'aider !
    Teste l'intégrité de tes données pour comprendre, difficile de te donner un meilleur conseil !

    Sinon écris plutôt ta requête comme suit, pour être dans la norme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT vte.mag_ref AS MAG, ma.MAG_NOM_COURT, vte.qte
    FROM VENTES vte
    JOIN REF_MAGASIN ma
    	ON vte.mag_ref = ma.MAG_REF
    WHERE vte.periode = '200912'
    	AND vte.mag_ref != '019'
    GROUP BY vte.mag_ref, ma.MAG_NOM_COURT, vte.qte

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    bonjour,
    Merci de m'avoir répondu si vite, je viens de trouver l'erreur :
    Dans ma table :
    - ventes, : les valeur de mag_ref sont : '001','002', ..., '047'
    - mag_ref : les valeur de mag_ref sont : '01','02', ..., '47'

    Comment puis-je faire pour enlever ou mettre le zéro de les chiffres, juste dans mon sélect, sans modifier la structure de ma base?

    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare @x varchar(50)
    set @x = '047'
    select cast(@x as int) A1, '0' + @x A2, substring(@x, 2 , len(@x) ) A3
    A1 :conversion en int
    A2 : ajout d'un 0 devant
    A3 : suppression du premier caractère
    Les deux derniers travaillent en varchar, j'aurais plutôt tendance à utiliser la première méthode pour raison de performance, à la condition que ta variable réponde au fait que c'est un nombre stocké dans du char - ce qui, soit dit en passant, n'est pas une bonne idée !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare @x varchar(50)
    set @x = '047'
    select cast(@x as int) A1, '0' + @x A2, substring(@x, 2 , len(@x) ) A3
    A1 :conversion en int
    A2 : ajout d'un 0 devant
    A3 : suppression du premier caractère
    Les deux derniers travaillent en varchar, j'aurais plutôt tendance à utiliser la première méthode pour raison de performance, à la condition que ta variable réponde au fait que c'est un nombre stocké dans du char - ce qui, soit dit en passant, n'est pas une bonne idée !
    c'est bon j'ai corrigé :
    j'ai fait lors de liason entre les deux tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT vte.mag_ref AS MAG, ma.MAG_NOM_COURT, vte.qte
    FROM VENTES vte
    JOIN REF_MAGASIN ma
    	ON right('000' + cast(ma.MAG_REF as varchar(3)), 3) = vte.mag_ref
    WHERE vte.periode = '200912'
    	AND vte.mag_ref != '019'
    GROUP BY vte.mag_ref, ma.MAG_NOM_COURT, vte.qte
    Merci ^^

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

Discussions similaires

  1. [AC-2007] Problèmes de liaison entre table et formulaire(sql et/ou vb)
    Par jaraf dans le forum Access
    Réponses: 10
    Dernier message: 06/05/2013, 16h48
  2. [SQL]Problème liens formulaires / tables
    Par PAINCO dans le forum IHM
    Réponses: 13
    Dernier message: 06/04/2007, 16h07
  3. Problème de Syntaxe SQL (Update Table)
    Par Thibaut_Dupont dans le forum Access
    Réponses: 15
    Dernier message: 17/07/2006, 16h32
  4. [Access 2003]Problème de liaison entre table
    Par steeves5 dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 09h40
  5. Problèmes de liaisons entre tables ...
    Par Mangun dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 11h35

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