|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 3 ![]() |
Bonjour
J'explique ma problématique. J'ai une table de BD de prévision d'achat avec des périodicités hebdomadaire avec les champs suivants, chaque enregistrement correspondant à la quantité hebdomadaire entre la semaine "start date" et la semaine "end date" Trans_id | Item_ID | Start date | End date | quantity |supplier_id 1 | 1 | 201101 | 201106 | 50 |1 2 | 3 | 201103 | 201104 | 250 |2 3 | 1 | 201103 | 201104 | 50 |3 J'aurai besoin à partir de cette table de générer une table avec les champs suivant en agrégeant les données à la semaine. week | item_id | quantity 201101 | 1 |50 201102 | 1 |50 201103 | 1 |100 201103 | 3 |250 201104 | 1 |50 .... Mais je ne vois pas comment à partir d'une date de début et une date de fin, on pourrait générer X lignes correspondant à chaque semaine entre ces deux dates. (j'ai à disposition une table calendar faisant le lien entre date et numéro de semaine). |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Stéphanie Coudert Inscription : janvier 2011 Messages : 1 ![]() |
Bonne idée. Admettons que tu ai ceci dans ta table calendrier:
Week_id | Week_number 1 | 201101 2 | 201102 3 | 201103 4 | 201104 5 | 201106 6 | 201107 Tu peux donc faire un jointure entre ta table achat et ta table calendrier (ou vue "semaine") de cette manière : SELECT semaine.week_number, achat.quantity, achat.supplier_id FROM semaine, achat WHERE semaine.week_number >= Start date and semaine.week_number <= End date => Tu peux faire l'équivalent de ce select avec un simple query sur semaine et achat Tu obtiendras ceci : 201101 | 50 |1 201102 | 50 |1 201103 | 50 |1 201104 | 50 |1 201105 | 50 |1 201106 | 50 |1 201103 | 250 |2 201104 | 250 |2 201103 | 50 |3 201104 | 50 |3 Si tu veux sommer les quantité par week_number et supplier_id, tu ajoutes dans le query : - ces deux champs dans le group by - un somme(quantity) au lieu de quantity dans le mapping C'est bien ce que tu cherches? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 3 ![]() |
C'est exactement ça, il faut que je peaufine. Mais à première vue, ça a l'air de fonctionner. En fait, il faut partir de ma table calendrier, c'est plus simple.
J'avais pas la bonne approche. Merci beaucoup |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com