Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2847 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Compléter les lignes manquantes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compléter les lignes manquantes

n°1402141
$man
Posté le 06-07-2006 à 16:47:30  profilanswer
 

Bonjour,
 
voila j'ai une base de ce type
 

Code :
  1. reference | annee | mois | prix
  2. kxz32     | 2006  |  1   | 32
  3. kxz32     | 2006  |  3   | 35
  4. kxz32     | 2006  |  4   | 33
  5. tu453     | 2006  |  1   | 12
  6. tu453     | 2006  |  2   | 15
  7. tu453     | 2006  |  5   | 11
  8. tu453     | 2006  |  7   | 16


 
En fait je voudrais qu'il me complete les mois manquants jusqu'au mois courant, avec comme valeur la derniere valeur trouvée pour la reférence.
J'aimerais en gros obtenir ca :
 

Code :
  1. reference | annee | mois | prix
  2. kxz32     | 2006  |  1   | 32
  3. kxz32     | 2006  |  2   | 32
  4. kxz32     | 2006  |  3   | 35
  5. kxz32     | 2006  |  4   | 33
  6. tu453     | 2006  |  1   | 12
  7. tu453     | 2006  |  2   | 15
  8. tu453     | 2006  |  3   | 15
  9. tu453     | 2006  |  4   | 15
  10. tu453     | 2006  |  5   | 11
  11. tu453     | 2006  |  6   | 11
  12. tu453     | 2006  |  7   | 16


 
Est-ce faisaible ? Si vous avez une méthode.
J'ai regardé un peu du coté du Transact SQL (je suis en SQL SERVER 2000), notamment les CURSOR, mais je ne vois pas comment faire mon test sur ma ligne.
Je pense que pour une ref, il faut dresser la liste des mois présents et ensuite s'il manque un mois (ou +) le(s) générer. Seulement comment faire ce test ?
 
Merci de votre aide.


Message édité par $man le 06-07-2006 à 16:48:26
mood
Publicité
Posté le 06-07-2006 à 16:47:30  profilanswer
 

n°1402494
vttman2
Je suis Open ...
Posté le 07-07-2006 à 07:32:16  profilanswer
 

ou alors rechercher le max(mois) par annee / reference
et faire une boucle :
 
De max(mois) -> 1 faire
     mois = mois -1
     insert mois
     si erreur
        mois existe (gère erreur / ne fais rien)  
     finsi
fin boucle
 
ou
 
De max(mois) -> 1 faire
     mois = mois -1
     select mois
     si n'existe pas  
        insertion mois  pour anne / reference
     finsi
fin boucle
 


Message édité par vttman2 le 07-07-2006 à 07:35:16
n°1402500
$man
Posté le 07-07-2006 à 08:35:40  profilanswer
 

Salut,
 
oui je pense que c'est une bonne idée, est-ce possible ?
J'avoue que j'arrive à géré quelques trucs avec les variables @, mais pour gérer des enregistrements ligne par ligne, je vois pas trop meme avec les cursor. Si vous aviez des exemples. Je continue d'investiguer de mon coté.
 
Merci;
:hello:

n°1402512
vttman2
Je suis Open ...
Posté le 07-07-2006 à 09:24:33  profilanswer
 

Sinon si tu as pas de réponses dans ce forum
 
Essaie là => http://www.developpez.com/
il y aura des gros balèzes pour te répondre ;-)

n°1402713
moi23372
Posté le 07-07-2006 à 12:08:22  profilanswer
 

je pense qu'une simple requête sql ferais l'affaire :s
il suffit de faire plusieurs SELECT imbriqué combiné avec des UNION et tu devrais y arriver.  
 
SELECT *
FROM (SELECT ... => tout ceux qui existe
          UNION
         SELECT ... => tout ceux qui n'existe pas  
        );
 
voila mtn à toi de compléter les SELECT :D, à mon avis, dans le dernier select, tu aurais encore des imbrications de SELECT.

n°1402715
$man
Posté le 07-07-2006 à 12:10:43  profilanswer
 

Salut,
 
oui ca peut etre une bonne idée, mais comment selectionner quelque chose qui n'existe pas ?
 
Merci.

n°1402797
moi23372
Posté le 08-07-2006 à 10:18:10  profilanswer
 

en ORACLE tu as la table DUAL que tu permets de selectionner quelques choses à partir de rien.

n°1403305
$man
Posté le 09-07-2006 à 17:46:35  profilanswer
 

Salut,  
 
comme indiqué je suis en SQL SERVER 2000
 
Merci.

n°1403565
moi23372
Posté le 10-07-2006 à 10:23:53  profilanswer
 

ben je ne sais pas sur SQL SERVER :D faut demander au spécialiste SQL SERVER ... Ou tu fais une recherche sur google, suis certain que tu trouveras vite la réponse.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Compléter les lignes manquantes

 

Sujets relatifs
Lire plusieurs lignes d'un fichier txt avec de l'AJAX[Résolu] Compléter les champs d'un PDF existant
Style différent pour des lignes (tr)[Shell résolu] trier les lignes obtenues par tail -f
EXCEL - Inserer 1 nouvelle ligne toutes les 3 lignesTaille des lignes de tableau
Enorme BD : 2 Millions de lignes/journombre de lignes et de colonnes d'un range
[résolu] demande traduction francais-->php (trois lignes SIMPLES)Séparer les colonnes d'une listbox par des lignes?
Plus de sujets relatifs à : Compléter les lignes manquantes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR