Bon la requête fonctionne correctement sauf si la table preparation ne contient pas de donné.

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
SELECT
I.Date_Achat,
I.Stock,
I.LotEncan,
I.Detail_Model,
I.Serie,
I.Ac,
I.Odo,
I.Radio,
I.Navi,
I.Clef,
I.CoutUs,
I.Taux_Change,
I.CoutCan AS CoutCan,
I.Transport AS Transport,
I.Douane AS Douane,
I.Commission AS Commission,
I.FraisAcheteur AS FraisAcheteur,
I.Profit AS Profit,
I.Marge AS Marge,
I.Loading AS Loading,
I.Storage AS Storage,
(SELECT SUM(assfraisfix.Montant) FROM assfraisfix WHERE assfraisfix.ID_Veh = '19') AS FraisFix,
(SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19') AS Preparation,
I.CommentInterne,
I.CommentWeb,
F.Compagnie,
F.Ville,
marque.Valeur AS Marque,
model.Valeur AS Model,
anne.Valeur AS Anne,
couleur.Valeur AS Couleur,
cyl.Valeur AS Cyl,
carburant.Valeur AS Carburant,
trans.Valeur AS Trans,
type_odo.Valeur AS TypeOdo,
 
(CoutCan +
Douane +
FraisAcheteur +
Transport +
Commission +
Loading +
Storage +
(SELECT SUM(assfraisfix.Montant) FROM assfraisfix WHERE assfraisfix.ID_Veh = '19') +
(SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19')) as SousTotal,
 
(CoutCan +
Douane +
FraisAcheteur +
Transport +
Commission +
Loading +
Storage +
(SELECT SUM(assfraisfix.Montant) FROM assfraisfix WHERE assfraisfix.ID_Veh = '19') +
(SELECT SUM(preparation.Montant) FROM preparation WHERE preparation.ID_Veh = '19') +
Marge +
Profit) as Total,
 
 
CONCAT(Recherchiste.Nom,' ',Recherchiste.Prenom) AS Recherchiste,
CONCAT(Acheteur.Nom,' ',Acheteur.Prenom) AS Acheteur
FROM inventaire AS I
JOIN fournisseur AS F ON (F.ID = I.Fournisseur)
JOIN marque ON (marque.ID = I.Marque)
JOIN model ON (model.ID = I.Model)
JOIN anne ON (anne.ID = I.Anne)
JOIN couleur ON (couleur.ID = I.Couleur)
JOIN cyl ON (cyl.ID = I.Cyl)
JOIN carburant ON (carburant.ID = I.Carburant)
JOIN trans ON (trans.ID = I.Trans)
JOIN type_odo ON (type_odo.ID = I.TypeOdo)
JOIN personnel AS Recherchiste ON (Recherchiste.ID = I.Recherchiste)
JOIN personnel AS Acheteur ON (Acheteur.ID = I.Acheteur)
WHERE I.ID = '19'
Vue que la table preparation ne contient pas de donné pour l'entré no 19 les calcul pour le total et le sous total me retourne rien vue que null ne s'additionne pas.

COmment faire en sorte que si la sum des montants dans preparation est null faire l'addition avec 0 au lieu de la sum de montant.

J'ai esseyer de faire un if mais j'ai toujours de erreur de syntax.

Si la sum de montant de preparation n'est pas null tout se passe bien.