Enieme enregistrement d'une requete

Enieme enregistrement d'une requete - SQL/NoSQL - Programmation

Marsh Posté le 14-12-2004 à 15:37:53    

Bonjour
J'ai un pb sur lequel je me casse la tete depuis un moment.
J'aimerais pouvoir inserer a l'aide d'une requete dans une table les n 1ers resultats provenant de ma requete
Pour etre plus clair voici ce que j'aimerais pouvoir faire (en sachant que les mots cles Second,Third,Fourth,Fifth n'existent pas):

Code :
  1. insert into MATABLE
  2. SELECT First(Numero) as Numero1,Second(Numero) as Numero2,Third(Numero) as Numero3,Fourth(Numero) as Numero4,Fifth(Numero) as Numero5,Last(Numero) as Numero6 FROM ...


Est ce possible?
Merci

Reply

Marsh Posté le 14-12-2004 à 15:37:53   

Reply

Marsh Posté le 15-12-2004 à 08:29:21    

Bonjour
Je suis pas tres fort en SQL mais je voudrais juste savoir si ma question reste sans reponse parcequ'elle est debile et qu'elle se trouve dans n importe quel bouquin de SQL ou bien parceque ce n'est pas faisable en SQL auquel cas j'essaierais de m'orienter vers autre chose
Merci

Reply

Marsh Posté le 15-12-2004 à 08:38:01    

C'est tout à fait possible. Après la syntaxe va dépendre du SGBD...:o


Message édité par skeye le 15-12-2004 à 08:38:18
Reply

Marsh Posté le 15-12-2004 à 08:42:06    

si j'utilise Access?
J'ai eu beau chercher je trouve pas la syntaxe

Reply

Marsh Posté le 15-12-2004 à 08:49:23    

J'ai pas access, mais à priori ce serait un truc du style

Code :
  1. insert into table1(champ1, champ2)
  2. select ch1, ch2 from table2


 
Pour les N premiers Access utilise le mot-clé TOP il me semble, regarde dans la doc.

Reply

Marsh Posté le 15-12-2004 à 08:57:56    

Le probleme c'est que les champs qui doivent etre ajoutes a la table1 proviennent tous du meme champ de la table2.
Je m'explique:
Chaque Client a plusieurs entrees dans la table Lignes (6 au maximum) et il me faudrait recuperer ces lignes de maniere horizontale dans la table1 (dans les champs Ligne1,Ligne2...Ligne6)
Merci de ton aide

Reply

Marsh Posté le 15-12-2004 à 09:00:11    

Tu peux montrer la structure de tes 2 tables qu'on voie mieux ce que tu veux faire stp?


Message édité par skeye le 15-12-2004 à 09:00:20
Reply

Marsh Posté le 15-12-2004 à 09:06:32    

Table Clients                   Table Lignes
--------------                 ---------------
PK CodeClient <--------------> CodeClient
NomClient                      PK Ligne
Addresse...                    DateConnection
 
Avec ca grace a ma requete j'aimerais creer une Troisieme Table :
 
Table3
-------
PK CodeClient
Nom  
Adresse...
Ligne1
Ligne2
Ligne3
Ligne4
Ligne5
Ligne6
 
Sachant qu'un client peut avoir jusqu a 6 lignes mais qu'il n en a pas forcement 6.
Ca me parait complique a faire je me casse la tete dessu depuis des jours.
Est ce possible avecune unique requete SQL
Thanx

Reply

Marsh Posté le 15-12-2004 à 09:22:57    

skeye a écrit :

J'ai pas access, mais à priori ce serait un truc du style

Code :
  1. insert into table1(champ1, champ2)
  2. select ch1, ch2 from table2


 
Pour les N premiers Access utilise le mot-clé TOP il me semble, regarde dans la doc.


 
Effectivement en Access
select TOP 10 chp1, chp2 from matable order by chp1
=> Te selectionnera les 10 premières lignes ...

Reply

Marsh Posté le 15-12-2004 à 09:42:00    

betsamee a écrit :

Table Clients                   Table Lignes
--------------                 ---------------
PK CodeClient <--------------> CodeClient
NomClient                      PK Ligne
Addresse...                    DateConnection
 
Avec ca grace a ma requete j'aimerais creer une Troisieme Table :
 
Table3
-------
PK CodeClient
Nom  
Adresse...
Ligne1
Ligne2
Ligne3
Ligne4
Ligne5
Ligne6
 
Sachant qu'un client peut avoir jusqu a 6 lignes mais qu'il n en a pas forcement 6.
Ca me parait complique a faire je me casse la tete dessu depuis des jours.
Est ce possible avecune unique requete SQL
Thanx


Par curiosité, quel est l'intérêt? :??:
A part dupliquer des données en les réarrangeant différemment...?
Sinon, je vois pas vraiment comment faire en une requête... :/


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-12-2004 à 09:42:00   

Reply

Marsh Posté le 15-12-2004 à 09:59:26    

J'aimerais pouvoir faire un courrier de bienvenue (en publipostage) contenant les differntes lignes dont cette requete serait la source de donnees.
Si je le laisse tel quel la jointure entre mes 2 tables me donnerait autant de lettres de bienvenue que de lignes
Merci

Reply

Marsh Posté le 15-12-2004 à 15:08:18    

En tous cas merci pour tout
Je vais me pendre maintenant

Reply

Marsh Posté le 15-12-2004 à 17:26:10    

non serieusement en regle generale pour faire un truc semblable quelle est la procedure a employer?
(rendre horizontale une table verticale cf schema de mes tables)

Reply

Marsh Posté le 16-12-2004 à 11:20:54    

je me desuicide j'ai trouve la solution
En 6 requetes update:
Je passe a chaque fois sur la table lignes et je copie la ligne appropriee dans la 3eme Table dans Ligne1 puis ligne2 en verifiant a chaque fois que la ligne updatee est differente de Ligne1,Ligne2...

Reply

Sujets relatifs:

Leave a Replay

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