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 :

[PostgreSQL] requête pour obtenir des sommes de prix selon critère


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut [PostgreSQL] requête pour obtenir des sommes de prix selon critère
    Bonjour,

    J'ai une requête assez difficile que je n'arrive pas à mettre au point, je me permets donc de solliciter votre aide.

    J'ai 2 tables:

    1 table "REPAS" et une table "LIGNE_COMMANDE"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    REPAS(
    id_repas int,
    nom_repas varchar,
    prix_normal float,
    prix_demi_portion float)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LIGNE_COMMANDE(
    id_ligne_commande int,
    id_repas (fk) int,
    nbre_fois_repas_commander int,
    demi_portion bool)
    Exemple d'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO REPAS VALUES (1,'steak',10,8)
     
    INSERT INTO LIGNE_COMMANDE VALUES(1,1,5,FALSE);
    INSERT INTO LIGNE_COMMANDE VALUES(2,1,3,TRUE);
    Le but de ma requête serait qu'elle retourne

    - la somme du nombre de repas vendus au prix "normal", donc où le champ "demi_portion" = FALSE
    - la somme du nombre de repas vendus au prix"demi_portion", donc où le champ "demi_portion" = TRUE

    - la somme en francs des repas vendus au prix "normal", donc où le champ "demi_portion" = FALSE
    - la somme en francs des repas vendus au prix"demi_portion",donc où le champ "demi_portion" = TRUE

    J'ai essayé pas mal de choses : procédure(fonction), sous-requêtes, mais sans grand résultat...

    J'arrive à calculer les sommes, mais en faisant 2 requêtes, une pour calculer les repas "normaux" et une autre pour calculer les repas "demi-portions", j'aimerais optimiser en une seule requête.

    Cela doit donner quelquechose du style, sans se préoccuper du "demi-portion" ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT nom_repas, SUM(nbre_fois_repas_commander) AS nbrecommande, (SUM(nbre_fois_repas_commander) * prix_normal) AS sommeArgent 
    FROM ligne_commande, repas WHERE ligne_commande.id_repas = repas.id_repas


    Est-ce que quelqu'un aurait une idée ??

    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  nom_repas
        ,   demi_portion
        ,   SUM(nbre_fois_repas_commander) AS nbrecommande
        ,   (SUM(nbre_fois_repas_commander) * (CASE demi_portion THEN prix_demi_portion ELSE prix_normal END)) AS sommeArgent 
    FROM    ligne_commande
        INNER JOIN
            repas 
            ON  ligne_commande.id_repas = repas.id_repas
    GROUP BY    nom_repas
            ,   demi_portion
    ;
    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.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    ça me paraît une très bonne solution, MERCI.

    Je tourne sous PostgreSQL, et apparemment, le "CASE THEN" ne passe pas... Y'a t-il une autre syntaxe sous Postgresql ???

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Peut-être le CASE WHEN (supporté par Postgresql mais je ne sais pas à partir de quelle version)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    Oui, c'est CASE WHEN, exactement ce que j'ai trouvé sur le forum "PostgreSQL"

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Citation Envoyé par Bindy
    Oui, c'est CASE WHEN, exactement ce que j'ai trouvé sur le forum "PostgreSQL"
    Mea culpa...
    Encore un mot qui est resté dans le clavier
    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.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    Encore une question, pour l'instant la requête retourne un résultat du genre, pour un repas, commandé en demi-portion et en "normal".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ligne No    nom      nbreCommande    SommeArgen
    1            steak        1                       15.00
    2            steak        1                         7.50

    Serait-il possible, de faire en sorte que cela ne retourne qu'une ligne du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ligne No       nom         nbreCommandeEntier       nbreCommandeDemiPortion
    Donc de retourner à la fois le nombre de repas "normal" et également le nombre de "demi-portion" vendus, tout cela sur une seule ligne ??


    Merci d'avance

  8. #8
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Il suffit d'adapter un peu la requête de al1_24 : à toi de jouer.

    Indication : retire demi_portion du group by.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  nom_repas
        ,   SUM(nbre_fois_repas_commander * (CASE WHEN demi_portion THEN 0 ELSE 1 END) ) AS nbrecommande_normal
        ,   SUM(nbre_fois_repas_commander * (CASE WHEN demi_portion THEN 1 ELSE 0 END) ) AS nbrecommande_demi
        ,   SUM(nbre_fois_repas_commander * (CASE WHEN demi_portion THEN prix_demi_portion ELSE prix_normal END) ) AS sommeArgent 
    FROM    ligne_commande
        INNER JOIN
            repas 
            ON  ligne_commande.id_repas = repas.id_repas
    GROUP BY    nom_repas
    ;
    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.

  10. #10
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Marchera pas na na nère

    [edit]
    C'est mieux
    [/edit]
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par Médiat
    Indication : retire demi_portion du group by.
    dès que je retire demi_portion du GROUP BY, j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    demi_portion must appear in the GROUP BY clause or be used in an aggregate function
    comment je peux contourner cette erreur, afin de poursuivre mes recherches ?

  12. #12
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Citation Envoyé par Médiat
    Marchera pas na na nère

    [edit]
    C'est mieux
    [/edit]

    Voilà ce qui arrive quand on clique sur "Envoyer" au lieu de "Prévisualiser"
    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.

  13. #13
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par Bindy
    dès que je retire demi_portion du GROUP BY, j'ai une erreur
    [code] ?
    J'avais bien dit "Indication", pas "Solution", mais al1_24 t'a déjà donné la bonne solution, et t'évite de chercher...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par al1_24
    Comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  nom_repas
        ,   SUM(nbre_fois_repas_commander * (CASE WHEN demi_portion THEN 0 ELSE 1 END) ) AS nbrecommande_normal
        ,   SUM(nbre_fois_repas_commander * (CASE WHEN demi_portion THEN 1 ELSE 0 END) ) AS nbrecommande_demi
        ,   SUM(nbre_fois_repas_commander * (CASE WHEN demi_portion THEN prix_demi_portion ELSE prix_normal END) ) AS sommeArgent 
    FROM    ligne_commande
        INNER JOIN
            repas 
            ON  ligne_commande.id_repas = repas.id_repas
    GROUP BY    nom_repas
    ;
    ça me retourne bien le "nbre de commande normal" et le nombre de commande "demi-portion", mais toujours en 2 lignes. Perso j'utilise plutôt un WHERE qu'un INNER JOIN, est-ce que la source d'erreur peut provenir de là ??


    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
           nom_repas, 
           SUM(nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 0 ELSE 1 END) AS nbrecommande_normal,
           SUM(nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 1 ELSE 0 END) AS nbrecommande_demi,
           SUM(nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN prix_demi_portion ELSE prix_normal END) AS sommeArgent
     
    FROM ligne_commande, repas
     
    WHERE ligne_commande.id_repas = repas.id_repas 
     
    GROUP BY nom_repas, prix_normal, prix_demi_portion,demi_portion;
    dès que j'enlève le "demi_portion" de la clause GROUP BY, il me met le message d'erreur, de mon dernier post.

  15. #15
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Compare la requête que tu utilises et celle que je te propose. La somme ne porte pas sur les mêmes éléments... vérifie les parenthèses.
    Citation Envoyé par bindy
    ça me retourne bien le "nbre de commande normal" et le nombre de commande "demi-portion", mais toujours en 2 lignes.
    La requête ne doit te retourner qu'une ligne par nom_repas.
    Citation Envoyé par bindy
    Perso j'utilise plutôt un WHERE qu'un INNER JOIN, est-ce que la source d'erreur peut provenir de là ??
    L'utilisation de INNER JOIN a deux avantages :
    1. Rendre la requête plus lisible en séparant les filtres (WHERE) de la jointure (ON)
    2. Aider les optimiseurs paresseux dans le choix du plan d'exécution
    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.

  16. #16
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par al1_24
    Compare la requête que tu utilises et celle que je te propose. La somme ne porte pas sur les mêmes éléments... vérifie les parenthèses.
    La requête ne doit te retourner qu'une ligne par nom_repas.
    en effet, j'ai changé les parenthèses par rapport à toi, mais le résultat est identique.

    A mon avis, c'est le "demi_portion" du GROUP BY, qui fait que la requête revient en 2 lignes et non en une, mais chaque fois que je l'enlève du GROUP BY, j'ai la même erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     demi_portion must appear in the GROUP BY clause or be used in an aggregate function
    Comment je peux contourner cette erreur ?

  17. #17
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Citation Envoyé par Bindy
    eA mon avis, c'est le "demi_portion" du GROUP BY, qui fait que la requête revient en 2 lignes et non en une, mais chaque fois que je l'enlève du GROUP BY, j'ai la même erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     demi_portion must appear in the GROUP BY clause or be used in an aggregate function
    Comment je peux contourner cette erreur ?
    As-tu vérifié que les parenthèses de SUM(...) englobent bien le CASE demi_portion...END pour les trois colonnes calculées ?
    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.

  18. #18
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SUM((nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 0 ELSE 1 END)) AS nbrecommande_normal,
     
    SUM((nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 1 ELSE 0 END)) AS nbrecommande_demi,   
     
    SUM((nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN prix_demi_portion ELSE prix_normal END)) AS somme_argent
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (SUM(nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 0 ELSE 1 END)) AS nbrecommande_normal,
     
    (SUM(nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 1 ELSE 0 END)) AS nbrecommande_demi,   
     
    (SUM(nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN prix_demi_portion ELSE prix_normal END)) AS somme_argent
    J'ai essayé les 2, mais rien ne changent...

  19. #19
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 405
    Points
    28 405
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM((nbre_fois_repas_commander) * (CASE WHEN demi_portion THEN 0 ELSE 1 END)) AS nbrecommande_normal,
    devrait fonctionner pourtant.
    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.

  20. #20
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Points : 81
    Points
    81
    Par défaut
    oui, je suis persuadé que ton code fonctionne. Mais le problème ce doit être ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GROUP BY demi_portion
    Tu ne penses pas ??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/07/2009, 01h19
  2. Comment prospecter pour obtenir des projets?
    Par HerQuLe dans le forum Emploi
    Réponses: 3
    Dernier message: 20/03/2009, 11h57
  3. blocage pour obtenir des données chiffrées
    Par lea022 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 02/09/2008, 16h57
  4. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  5. Comment modifie une requete pour avoir des sommes?
    Par F@ce27 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/06/2006, 13h47

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