Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 09h26   #1
Nouveau Membre du Club
 
Mickaël
Inscription : février 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Mickaël

Informations forums :
Inscription : février 2011
Messages : 82
Points : 37
Points : 37
Par défaut Double somme dans meme requete

Bonjour,
Pas sur que je sois au bon endroit pour poster ce message menfin bon je n'ai pas trouvé de forum SQL.
Bref, mon idée est de calculer 2 sommes dans une meme requete.... J'ai essayé plusiseurs solutions et n'ai pas encore toruvé mon bonheur.. Je vous explique:

J'aimerais pour chaque article:
-calculer le stock (en faisant une somme des mouvements de stock)
-calculer le total des précommandes en faisant la somme de toutes les lignes de pré-commande.
Et dans la même requête ne sélectionner que les lignes dont stock<pré-commandes.

Pour l'instant je fais (grossomodo) cela:
Code :
1
2
3
4
5
6
7
8
9
10
WITH T AS (
SELECT CODARTICLE, SUM(QTSTOCK)AS STOCKTHEORIQUE 
FROM ARTICLES 
LEFT JOIN STOCK ON PATATIPATATA
GROUP BY CODARTICLE
) 
SELECT CODARTICLE, STOCKTHEORIQUE, SUM(QTPRECOMMANDES) AS PRECOMMANDES
FROM T 
LEFT JOIN LIGNESCOMMANDES ON PATATIPATATA
GROUP BY CODARTICLE, STOCKTHEORIQUE
Je calcule donc bien pour chaque article le stock+ la quantité de précommandes.
mais je ne sais pas comment ne sélectionner que ceux où stock<précommandes.
Je voulais réinclure tout ça dans un WITH ... mais cela ne passe pas.
Là je crois qu'il me manque une notion SQL importante!!

Merci pour votre aide
MickSou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 11h19   #2
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
Par défaut ecrit sans sgbd de disponible

bonjour

Pour un forum SQl assez actif, c'est ici

1ere critique, tu ne qualifies (terme exact?) pas tes colonnes, cela rend ta requete assez pénible à interpreter. et dans le ON PATATIPATATA, bof, il y a quoi dedans?

2eme : quel sgdb utilises-tu? Même si le SQL est assez bien standardisé, les versions et exceptions pullulent.

un début de réponse possible:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WITH t_stock AS (
SELECT CODARTICLE, SUM(QTSTOCK)AS STOCKTHEORIQUE 
FROM ARTICLES 
LEFT JOIN STOCK ON PATATIPATATA
GROUP BY CODARTICLE
),
 
   t_precom AS (
SELECT CODARTICLE, SUM(QTPRECOMMANDES) AS PRECOMMANDES
FROM ARTICLES 
LEFT JOIN STOCK ON PATATIPATATA
GROUP BY CODARTICLE
)
 
SELECT * FROM t_stock 
LEFT JOIN t_precom
 ON t_stock.codarticle = t_precom.codarticle
;
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 11h34   #3
Nouveau Membre du Club
 
Mickaël
Inscription : février 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Mickaël

Informations forums :
Inscription : février 2011
Messages : 82
Points : 37
Points : 37
SGBD: DB2,
J'ai enfin trouvé le forum SQL!!!
Pour ta réponse: je teste ça rapidement, ça m'a l'air excellent!
Code :
1
2
3
4
 WITH T1 AS ( ....), 
        T2 AS (....)
 SELECT * FROM t1
 INNER JOIN t2...
PATATI PATATA un tas de truc pour faire le lien entre l'article et les mouvements de stock ou commandes, testé les unités de cde et les dates de mouvements.... j'ai cherché à vous epargner ce capharnaüm!!
MickSou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 14h17   #4
Nouveau Membre du Club
 
Mickaël
Inscription : février 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Mickaël

Informations forums :
Inscription : février 2011
Messages : 82
Points : 37
Points : 37
Eurêka ça marche, merci encore!
MickSou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h35.


 
 
 
 
Partenaires

Hébergement Web