Bonjour,
bon oui, reposons nous ben pas vraiment : repas de famille en Vendée (comment savais-je que j'étais avec des Vendéens ? facile les hommes à un bout de la table les femmes à l'autre! ça ne s'invente pas)Bon dimanche Sergio ... Reposons nous
pour reprendre le SQL voici une solution qui à priori retrouve tout tes petits (avec le jeu d'essai fourni)
SQlite permettant de trier une colonne
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 -- Affaires sans devis avec ou sans factures -- notées par un 0 en premier SELECT 0, a.numAffaire, a.designation, '' as PKDEVIS, '' as NUMDEVIS, f.numFacture, f.fkdevis FROM affaires a LEFT JOIN devis d ON a.pkaffaires = d.fkaffaires LEFT JOIN factures f ON a.pkaffaires = f.fkaffaires WHERE (f.fkdevis is null or f.fkdevis=0) UNION -- affaires avec Devis avec ou sans factures sur le devis -- notées par un 1 au début SELECT 1,a.numaffaire,a.designation,d.pkdevis,d.numdevis,f.numfacture,f.fkdevis FROM affaires a join devis d on a.pkaffaires=d.fkaffaires << note ici le join et non left join left join factures f on d.pkdevis=f.fkdevis ORDER by 1,numaffaire,pkdevis
j'ai vérifié : 1 - le nombre d'affaires 15000 à 15005 soit 6 ok
2 - le nombre de devis 1 à 7 ok correspond au nombre de ligne de la table devis
3 - le nombre de factures FA001 à FA013 ok
total résultats 15 lignes
Partager