Valeur à 0
Fermé
domi6226
Messages postés
79
Date d'inscription
jeudi 12 juillet 2012
Statut
Membre
Dernière intervention
5 juin 2018
-
5 sept. 2012 à 11:53
A.Nonymous - 11 sept. 2012 à 20:11
A.Nonymous - 11 sept. 2012 à 20:11
A voir également:
- Valeur à 0
- Remettre iphone a 0 - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Comment faire un 0 barré sur telephone ✓ - Forum Windows
- Remettre a 0 un pc - Guide
- Numéro de téléphone excel 0 - Guide
1 réponse
Dans un cas où des données liées peuvent exister ou ne pas exister, il faut utiliser une jointure "LEFT"
SELECT
produit.*, COUNT(DISTINCT mouvement.id) nb_mouvements
FROM prodiut
LEFT JOIN mouvement ON mouvement.id_produit = produit.id
GROUP BY produit.id
(Ca pourrait être avec RIGHT aussi, mais tout SQL utilisant RIGHT peut être converti en SQL utilisant LEFT)
SELECT
produit.*, COUNT(DISTINCT mouvement.id) nb_mouvements
FROM prodiut
LEFT JOIN mouvement ON mouvement.id_produit = produit.id
GROUP BY produit.id
(Ca pourrait être avec RIGHT aussi, mais tout SQL utilisant RIGHT peut être converti en SQL utilisant LEFT)
5 sept. 2012 à 15:25
Merci de votre aide.
5 sept. 2012 à 22:22
Mais dans ce cas, il va falloir donner + d'infos sur les tables en question et les liens entre elles.
S'il y a plusieurs tables de produit, à quel(s) élément(s) d'un produit un mouvement est-il associé ?
5 sept. 2012 à 22:57
Il y a des entrées et des sorties sur chacun des produits, donc afin de regrouper les entrées et sorties de chaque produit, j'ai créé une requête Union pour chaque produit.
Afin de suivre l'évolution des entrées et sorties, et bien sur des stocks, j'ai crée une super requêtes (grâce à ce site) me permettant de regrouper l'ensemble sur un seul état (en modifiant les requêtes pour qu'elles aient le même nombre de colonnes).
Mais les mois ou certains ne mouvementent pas (je m'arrête au mois pour l'instant) ne figure pas sur cet état, pas de valeur à 0 comme sous Excel, donc je cherche un moyen de faire apparaître ces mois sans mouvements dans cet état.
J'espère être assez clair dans cette explication.
Merci.
6 sept. 2012 à 16:06
SELECT
produit.*, COUNT(DISTINCT mouvement.id) nb_mouvements
FROM (
SELECT id, nom, 'A' type FROM produitA
UNION
SELECT id, nom 'B' type FROM produitB
) prodiut
LEFT JOIN mouvement ON mouvement.id_produit = produit.id AND mouvement.produit_type = produit.type
GROUP BY produit.type, produit.id
6 sept. 2012 à 16:43
donc ;
SELECT
produit.*, COUNT(DISTINCT mouvement.id) nb_mouvements
FROM (
SELECT id, nom=nom de la table, 'A'=nom du produit type FROM produitA
UNION
SELECT id, nom 'B' type FROM produitB
) prodiut
LEFT JOIN mouvement ON mouvement.id_produit = produit.id AND mouvement.produit_type = produit.type
GROUP BY produit.type, produit.id
Désolé, j'avoue mon ignorance la dessus.