begin process at 2008 09 05 19:47:45
1 237 470 membres
410 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [SQL Server 2000] Requete SQL Comparer 2 table [ SQL Server, MSDE, SQL Express / Requêtes ] (sdisp)

[SQL Server 2000] Requete SQL Comparer 2 table le 05/08/2008 11:32:50

sdisp
Bonjour.

J'essaie de faire une requête qui me pose soucis!
Je vous explique, j'ai de table de structure identique dans 2 bases différentes, soit:
- base1.dbo.ma_table
- base2.dbo.ma_table

Je vous récupérer les lignes qui sont dans base1.dbo.ma_table mais pas dans base2.dbo.ma_table

J'ai essayé plusieurs chose :
SELECT  base1.dbo.ma_table.* FROM  base1.dbo.ma_table
WHERE NOT EXISTS
(SELECT base2.dbo.ma_table.* FROM base2.dbo.ma_table)

J'ai également essayé avec du NOT IN, MINUS,...
Mais rien n'y fait.

Pouvez-vous me donner un coup de main.
Merci.
sdisp

Re : [SQL Server 2000] Requete SQL Comparer 2 table le 06/08/2008 18:09:10

crn_c21
Tu ne peux pas comparer les champs globaux d'une table (champ *)

SELECT  base1.dbo.ma_table.MyId FROM  base1.dbo.ma_table
WHERE MyId NOT IN
(SELECT base2.dbo.ma_table.MyId FROM base2.dbo.ma_table)

Re : [SQL Server 2000] Requete SQL Comparer 2 table le 06/08/2008 19:23:53

sdisp
Arf Ok.

Merci pour ton aide.

Re : [SQL Server 2000] Requete SQL Comparer 2 table le 07/08/2008 08:47:12

sdisp
Bonjour.

Je viens de faire le test et je suis tombé sur un nouveau problème!
La clé de ma table est une clé composée sur 3 champs (int,int,date) (ce n'est pas moi qui ai créé la base!).

Je suis donc en train de faire le test en concaténant les 3 champs Cast(int1 as Varchar) +'-'+ Cast(int2 as Varchar) +'-'+ Cast(date1 as Varchar).

Mais je me demande si c'est vraiment là la solution!

Avez-vous une autre idée?

Merci.

Re : [SQL Server 2000] Requete SQL Comparer 2 table le 07/08/2008 09:34:46

sdisp
Arf je viens de voir que le cast de la date en varchar converti le mois en lettre, se qui n'est peut être pas non plus très bien.
peut être caster plutot en float!

Re : [SQL Server 2000] Requete SQL Comparer 2 table le 07/08/2008 09:57:08

sdisp

En fouillant encore sur le net, je suis tombé sur quelque chose qui me semble pas mal!
Utiliser le LEFT OUTER JOIN!

Ca me donnerais quelque chose comme cela:

Select base1.dbo.ma_table.int1, base1.dbo.ma_table.int2, base1.dbo.ma_table.date1, base1.dbo.ma_table.xxx from base1.dbo.ma_table
LEFT OUTER JOIN base2.dbo.ma_table
ON base1.dbo.ma_table.int1= base2.dbo.ma_table.int1
AND base1.dbo.ma_table.int2= base2.dbo.ma_table.int2
AND base1.dbo.ma_table.date1 = base2.dbo.ma_table.date1
AND base2.dbo.ma_table.grnr = null

Qu'en dites-vous? Est-ce juste? Optimisé?
Merci.




Re : [SQL Server 2000] Requete SQL Comparer 2 table le 08/08/2008 08:04:49

sdisp
Réponse acceptée !
Re.

J'ai trouvé mon erreur, c'est tout con!

Select base1.dbo.ma_table.int1, base1.dbo.ma_table.int2, base1.dbo.ma_table.date1, base1.dbo.ma_table.xxx from base1.dbo.ma_table
LEFT OUTER JOIN base2.dbo.ma_table
ON base1.dbo.ma_table.int1= base2.dbo.ma_table.int1
AND base1.dbo.ma_table.int2= base2.dbo.ma_table.int2
AND base1.dbo.ma_table.date1 = base2.dbo.ma_table.date1
AND base2.dbo.ma_table.grnr is null

Bonne journée.


Classé sous : table, sql, dbo, base1, base2

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Boutique

Boutique de goodies CodeS-SourceS