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 Procédural MySQL Discussion :

Problème de syntax SELECT


Sujet :

SQL Procédural MySQL

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut Problème de syntax SELECT
    Bon la requête fonctionne correctement sauf si la table preparation ne contient pas de donné.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    SELECT
    I.Date_Achat,
    I.Stock,
    I.LotEncan,
    I.Detail_Model,
    I.Serie,
    I.Ac,
    I.Odo,
    I.Radio,
    I.Navi,
    I.Clef,
    I.CoutUs,
    I.Taux_Change,
    I.CoutCan AS CoutCan,
    I.Transport AS Transport,
    I.Douane AS Douane,
    I.Commission AS Commission,
    I.FraisAcheteur AS FraisAcheteur,
    I.Profit AS Profit,
    I.Marge AS Marge,
    I.Loading AS Loading,
    I.Storage AS Storage,
    (SELECT SUM(assfraisfix.Montant) FROM assfraisfix WHERE assfraisfix.ID_Veh = '19') AS FraisFix,
    (SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19') AS Preparation,
    I.CommentInterne,
    I.CommentWeb,
    F.Compagnie,
    F.Ville,
    marque.Valeur AS Marque,
    model.Valeur AS Model,
    anne.Valeur AS Anne,
    couleur.Valeur AS Couleur,
    cyl.Valeur AS Cyl,
    carburant.Valeur AS Carburant,
    trans.Valeur AS Trans,
    type_odo.Valeur AS TypeOdo,
     
    (CoutCan +
    Douane +
    FraisAcheteur +
    Transport +
    Commission +
    Loading +
    Storage +
    (SELECT SUM(assfraisfix.Montant) FROM assfraisfix WHERE assfraisfix.ID_Veh = '19') +
    (SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19')) as SousTotal,
     
    (CoutCan +
    Douane +
    FraisAcheteur +
    Transport +
    Commission +
    Loading +
    Storage +
    (SELECT SUM(assfraisfix.Montant) FROM assfraisfix WHERE assfraisfix.ID_Veh = '19') +
    (SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19') +
    Marge +
    Profit) as Total,
     
     
    CONCAT(Recherchiste.Nom,' ',Recherchiste.Prenom) AS Recherchiste,
    CONCAT(Acheteur.Nom,' ',Acheteur.Prenom) AS Acheteur
    FROM inventaire AS I
    JOIN fournisseur AS F ON (F.ID = I.Fournisseur)
    JOIN marque ON (marque.ID = I.Marque)
    JOIN model ON (model.ID = I.Model)
    JOIN anne ON (anne.ID = I.Anne)
    JOIN couleur ON (couleur.ID = I.Couleur)
    JOIN cyl ON (cyl.ID = I.Cyl)
    JOIN carburant ON (carburant.ID = I.Carburant)
    JOIN trans ON (trans.ID = I.Trans)
    JOIN type_odo ON (type_odo.ID = I.TypeOdo)
    JOIN personnel AS Recherchiste ON (Recherchiste.ID = I.Recherchiste)
    JOIN personnel AS Acheteur ON (Acheteur.ID = I.Acheteur)
    WHERE I.ID = '19'
    Vue que la table preparation ne contient pas de donné pour l'entré no 19 les calcul pour le total et le sous total me retourne rien vue que null ne s'additionne pas.

    COmment faire en sorte que si la sum des montants dans preparation est null faire l'addition avec 0 au lieu de la sum de montant.

    J'ai esseyer de faire un if mais j'ai toujours de erreur de syntax.

    Si la sum de montant de preparation n'est pas null tout se passe bien.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    J,ai ceci qui ne cause pas d'erreur de syntax, mais au lieu de retourner 0,00 si null sa retourne null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (SELECT IF((SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19')=NULL,'0,00',(SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19'))) AS Preparation,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Toujours rien de mon côté. Je croix que je vais entré une valeur de 0,00 par defaut dans la db pour ocntourner le problème. Comme cela au moins il va avoir un nombre à calculer au lieu d'un null.

    Si vous avez des idées je suis preneur.

    Merci

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    essaie avec la fonction IFNULL(val1, val2), comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    (SELECT SUM(IFNULL(preparation.Montant, 0)) FROM preparation WHERE preparation.ID_Veh = '19')
    ...
    partout où tu fais référence à preparation.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Ok j'essaie cela merci.

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

Discussions similaires

  1. [Débutant] Problème syntaxe select from where sur base access
    Par IL-MAFIOSO dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/06/2012, 17h27
  2. [Débutant] Problème de syntaxe dans la requete sql select
    Par cosmic11 dans le forum VB.NET
    Réponses: 1
    Dernier message: 17/03/2012, 20h18
  3. problème de syntaxe pour select case
    Par bddaccess dans le forum VBA Access
    Réponses: 23
    Dernier message: 23/09/2008, 11h24
  4. [MySQL] Récuperer la valeur d'un select max() en php - Syntaxe
    Par skystef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/05/2008, 00h40
  5. [VBA-EXCEL] Selection d'une colonne, problème de syntaxe
    Par legillou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2007, 14h09

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