Bonjour la team,
je poste ici parceque le moteur est SQLITE, mais la réponse est je pense plus SQL. Je fait un petit soft pour gérer mon entreprise.

Le besoin de la vue : afficher TOUTES les affaires, puis les DEVIS existants (Une affaire contient ou pas des DEVIS), puis enfin les FACTURES (chaque devis contient ou pas des factures)

Mon problème : Si une facture ne vient d'un devis (mais obligatoirement d'une affaire) j'arrive à l'afficher, mais bien sur il affiche à nouveau tous les devis de cette même affaire.

Voici la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE VIEW "VaffairesEtat" AS  SELECT 
					affaires.pkaffaires, affaires.numAffaire AS 'N° Dossier', affaires.designation AS 'Nom dossier' , societes.nomSociete AS 'Société' , affaires.fkaffaireStatuts AS 'Statut affaire'
                    , devis.pkdevis, devis.numDevis AS 'N° Devis', devis.designation as 'Nom devis', devis.ptHT AS 'Valeur Ht', devis.fkdevisStatuts AS 'Statut devis'
                    , factures.pkfactures, factures.numFacture AS 'N° Facture', factures.nom AS 'Désignation facture', factures.ptHt AS  'Montant Ht', factures.dateFacture AS 'Facturé le :', factures.dateReglement AS 'régler le :', factures.fkfactureStatuts AS 'Statut'
                FROM
				-- requéte sur affaire
				affaires LEFT OUTER JOIN devis ON affaires.pkaffaires = devis.fkaffaires
				JOIN societes ON societes.pksocietes = affaires.idSociete
				-- requéte sur devis
				LEFT OUTER JOIN factures ON 
				CASE WHEN factures.fkdevis > 0 
				THEN devis.pkdevis = factures.fkdevis 
				ELSE affaires.pkaffaires = factures.fkaffaires 
				END ORDER BY affaires.numAffaire
Aperçu du résultat:

Nom : Capture.PNG
Affichages : 772
Taille : 53,4 Ko

On peut constater qu'une affaire sans devis, ni facture est bien présente (15003), mais en revanche une facture sans devis (fkdevis = -1) se place bien dans l'affaire (FA011 pour l'exemple de l'affaire 15000) mais la requête affiche les trois devis de la même affaire (DE1508000, 8002 et 9006) -_-.
A bien lire la requete je trouve normal qu'elle le fasse, mais j'aimerai avoir la ligne devis null et qu'une ligne pour la facture (FA011)

Comment afficher la facture sans que les devis pollues la vue ?
J'ai essayé pas mal de structure CASE un peu dans tous les sens, mais c'est mon meilleure résultat :'(

Si quelqu'un à une idée ? d'avance merci pour votre lecture et réflexion.
Cordialement ADN