répéter valeur

répéter valeur - SQL/NoSQL - Programmation

Marsh Posté le 26-11-2005 à 22:07:04    

bonjour,
je suis débutant sous access.
Pour simplifier le probleme, disons que j'ai une table avec un champs nom.
Les champs sont parfois vides.
Je voudrais que les champs vides prennent la valeur du dernier champs non vide avant eux.
j'essaie un peu au hasard un requête sql de ce type:
 
SELECT Requête1.Type
FROM Requête1
IF Requête1.Type=  not null
var=Requête1.Type
ELSE Requête1.Type=var);
 
Ca ne marche évidemment pas, j'imagine que la syntaxe est bizarre, j'espère que ça donne toutefois une idée de ce que je voudrais.
Merci de votre aide!!!!

Reply

Marsh Posté le 26-11-2005 à 22:07:04   

Reply

Marsh Posté le 26-11-2005 à 23:43:54    

C'est difficile de répondre sans avoir la structure de la table, et sans savoir ce que veut dire exactement "prennent la valeur du dernier champs non vide avant eux." La notion d'antériorité est très relative. Est-ce que les enregistrements ont un champ date et heure, ou un numéro automatique ?
 
Nonobstant, la requête pourra ressembler à ceci :

INSERT INTO la_table T1 (col1, col2)
VALUES(1234,
           SELECT col2 FROM la_table T2
           WHERE T2.col1 = T1.col1 - 1);

Mais le calcul de l'antériorité peut être plus complexe que mon col1 - 1, et donc il faudrait peut-être adopté une solution en deux étapes : d'abord récupérer l'enregistrement antérieur, et ensuite faire l'insertion.

Reply

Marsh Posté le 27-11-2005 à 00:05:57    

bourrin mais qui marche :

Code :
  1. select champ1,if(isnull(champ2),champ1,champ2),
  2. if(isnull(champ3),if(isnull(champ2),champ1,champ2)champ3)....
  3. from Table

Reply

Marsh Posté le 27-11-2005 à 01:54:51    

olivthill a écrit :

C'est difficile de répondre sans avoir la structure de la table, et sans savoir ce que veut dire exactement "prennent la valeur du dernier champs non vide avant eux." La notion d'antériorité est très relative. Est-ce que les enregistrements ont un champ date et heure, ou un numéro automatique ?


Les champs ont une numérotation automatique, le champs qui les précède est donc celui qui a une valeur n-1.
Le champs1 a comme valeurs: 1 - 2 - 3 - etc.
le champs2 a comme valeur corresspondante: "test" - " " - "test2"
Je voudrais que le champs2, à la deuxième ligne, qui n'a pas de valeur, prenne la valeur du champs qui le précède directement, en l'occurence "test".

Reply

Marsh Posté le 27-11-2005 à 13:52:00    

personne n'a une petite idée?
un lien vers un tuto??

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed