Bonjour,
je souhaite faire la requête suivante :
Elle est sensée me renvoyer toutes les informations du client citées, y compris l'adresse (qui est un UDT de type AddressType) et les mobile, phone et fax (qui sont des UDT de type PhoneType).
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 SELECT cl.id AS id, cl.companyname AS companyname, cl.tvanumber AS tvanumber, cl.trademark AS trademark, cl.address AS address, -- UDT cl.contactname1 AS contactname1, cl.contactname2 AS contactname2, cl.mobile AS mobile, -- UDT cl.phone AS phone, -- UDT cl.fax AS fax, -- UDT cl.country AS country, COUNT (co.id) AS nbcomputers FROM clients AS cl LEFT OUTER JOIN establishments es ON cl.id = es.client LEFT OUTER JOIN computers co ON es.id = co.establishment WHERE cl.id = ? GROUP BY cl.id, cl.companyname, cl.tvanumber, cl.trademark, cl.address, cl.contactname1, cl.contactname2, cl.mobile, cl.phone, cl.fax, cl.country;
Je sais que, vu que j'utilise un COUNT() dans le select, je dois faire un group by sur tous les autres champs demandés, MAIS si je fais ça, j'ai une erreur comme quoi PostGreSQL ne sait pas comparer mes champs UDT.
De plus, je n'ai jamais utilisé ce type de jointures et s'il y a une erreur dedans, pourriez vous me la signaler ?
Comment résoudre cela ? Un énorme merci si vous réussissez à m'aider
Olivier
Partager