PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  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  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Requête impossible à construire :(

Technique - général | Requête impossible à construire :(

Par jul le 14/08/2006 - 05:40

Bonjour,

Cela va faire une bonne semaine que je m'efforce à trouver la requête qui correspond aux résultats que je veux générer, mais il y a rien à faire...
Malgré une lecture et une relecture du manuel officiel sur les sous-requêtes, joins, unions, etc, je reste sans résultat :(

Cela concerne 2 tables: "t_purchaseorderheader" et "t_purchaserderlist"

Table "public.t_purchaseorderheader"
Column | Type | Modifiers
------------------+---------+-----------
poh_id | integer | not null
poh_site | text | not null
poh_datecreation | date | not null
poh_deliverydate | date | not null
poh_deleverytime | text | not null
poh_supplier | text | not null
poh_cash | boolean | not null
poh_closed | boolean | not null
Indexes:
"t_purchaseorderheader_pkey" PRIMARY KEY, btree (poh_id)

Table "public.t_purchaseorderlist"
Column | Type | Modifiers
---------------+---------+-----------
pol_pohid | integer | not null
pol_item | integer | not null
pol_quantity | integer | not null
pol_unitprice | integer | not null
pol_unit | text | not null
Foreign-key constraints:
"t_purchaseorderlist_pol_pohid_fkey" FOREIGN KEY (pol_pohid) REFERENCES t_purchaseorderheader(poh_id) ON DELETE CASCADE

Depuis l'interface d'accès, l'utilisateur choisi deux "poh_deliverydate" ('From:' et 'To:') et un "poh_supplier".
Le résultat attendu devrait ressembler à l'exemple suivant: (chaque date doit être unique)
poh_delevirydate | price
--------------------+---------
2006-01-02 | 50
2006-04-02 | 42
........ | ..
....... | ..

J'arrive à afficher un début de résultat grace à la requete suivante:
SELECT pol_item,(pol_unitprice*pol_quantity) as pol_cost
FROM t_purchaseorderlist
WHERE pol_pohid IN (SELECT poh_id FROM t_purchaseorderheader WHERE poh_deliverydate BETWEEN '2006-06-01' AND '2006-06-20' AND poh_supplier='NLF');

Mais il manque le lien avec la poh_deliverydate, ainsi que le sous-total du prix pour chaque date...
Je ne vois pas comment cela peux se faire.

En espérant avoir exposé mon problème clairement,
Merci d'avance pour votre aide.

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

avec JOIN et GROUP BY

koollman/ = 23 Août, 2006 - 13:47

Quelque chose comme fait ce que tu veux?

SELECT poh_deliverydate, SUM(pol_quantity * pol_unitprice) as price
FROM t_purchaseorderlist JOIN t_purchaseorderheader ON (poh_id = pol_pohid)
WHERE poh_deliverydate BETWEEN '2006-06-01' AND '2006-06-20'
AND poh_supplier='NLF'
GROUP BY poh_deliverydate
ORDER BY poh_deliverydate ;

--
Thomas Samson


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.