Bonjour, je copie/colle mon message issu d'une autre ancienne discussion que je voulais relancer, mes étant donné le fait qu'elle se situe dans un forum POSTGRESQL et que moi j'utilise oracle ... je me permet de poser la question ici :

Citation Envoyé par Arvulis Voir le message
Sinon tu peux créer une vue intermediaire avec cet ordre et ensuite faire un insert select de la vue.
Bonjour, désolé de remonter cet ancien topic, mais la réponse me paraît finalement incomplète.

j'aimerais créer une table à partir de plusieurs autres tables sans y copier les données des tables, puis ajouter les données des dites tables ordonnées selon une colonne.

Voici ma requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
create table agentsinfotarget
as
(select code_name, information_id, gleaned_date, t.first_name,t.last_name, l.description
from agents a 
            inner join information i 
on a.agent_id= i.agent_id
            inner join targets t
            on i.target_id=t.target_id
            inner join locations l
            on t.location_id=l.location_id
 where 1=2           )
Etant donné que les colonnes sont vides, les inner joins ne sont pas utiles mais c'est juste pour la démarche intellectuelle ...

Ensuite pour ajouter les données dans ma nouvelle table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--Insert all data from the appropriate tables. Data should be ordered by CODE_NAME in reverse alphabetical orde
Insert into agentsinfotarget
(code_name, information_id, gleaned_date, first_name, last_name, description)
select code_name, information_id, gleaned_date,first_name,last_name, description
from 
    (select code_name, information_id, gleaned_date, t.first_name,t.last_name, l.description 
            from   agents a 
                    inner join information i 
                    on a.agent_id= i.agent_id
                    inner join targets t
                    on i.target_id=t.target_id
                    inner join locations l
                    on t.location_id=l.location_id
                    order by code_name desc
      )
Cependant ensuite, en checkant avec un select * from agentsinfotarget, je vois que les données n'ont pas été ajoutées de façon ordonnées ...

Ferais-je une erreur où es-ce impossible de spécifier un ordre d'ajout?

Merci d'avance.

F.