Une seul requete pour plusieurs base
Modérateurs: Super-Apogea, Super Modérateur
3 messages
|Page 1 sur 1
Une seul requete pour plusieurs base
Bonjour à tous,
je dispose d'une requête SQL que je doit exécuter sur plusieurs BDD sur différente société compta
Voici la requête d'exemple:
Est-ce possible de réaliser ce type de requete ?
Merci d'avance pour votre aide et vos explications
guigui69
je dispose d'une requête SQL que je doit exécuter sur plusieurs BDD sur différente société compta
Voici la requête d'exemple:
- Code: Tout sélectionner
SELECT .....
FROM [XXXX].[dbo].[F_ECRITUREC]
INNER JOIN F_COMPTEG on F_COMPTEG.CG_NUM=F_ECRITUREC.CG_NUM
WHERE JM_Date>= '20160101' and JM_Date<= '20161231'
[code]
Et donc je voudrais savoir si il est possible de faire en une seul requete pour interroger tout les base en question exemple:
SELECT .... FROM [[B]SOCIETE1[/B]].[dbo].[F_ECRITUREC] INNER JOIN F_COMPTEG on F_COMPTEG.CG_NUM=F_ECRITUREC.CG_NUM WHERE JM_Date>= '20160101' and JM_Date<= '20161231'
UNION
SELECT .... FROM [[B]SOCIETE3[/B]].[dbo].[F_ECRITUREC] INNER JOIN F_COMPTEG on F_COMPTEG.CG_NUM=F_ECRITUREC.CG_NUM WHERE JM_Date>= '20160101' and JM_Date<= '20161231'
UNION
SELECT .... FROM [[B]SOCIETE2[/B]].[dbo].[F_ECRITUREC] INNER JOIN F_COMPTEG on F_COMPTEG.CG_NUM=F_ECRITUREC.CG_NUM WHERE JM_Date>= '20160101' and JM_Date<= '20161231'
UNION
Est-ce possible de réaliser ce type de requete ?
Merci d'avance pour votre aide et vos explications
guigui69
- Super Contributeur
- Messages: 215
- Inscription: Jeu 5 Fév 2009 16:39
Re: Une seul requete pour plusieurs base
Bonjour, effectivement, c'est possible, vous pouvez également aller sur des bases de données sur différentes instances
- Super Contributeur
- Messages: 176
- Inscription: Sam 28 Juin 2014 20:48
Re: Une seul requete pour plusieurs base
Bonjour,
Il faudrait utiliser UNION ALL plutôt que UNION.
Pour ce type de requêtes, préfixer systématiquement toutes les tables utilisées avec le nom de la base et du schéma.
Définir un nom pour chaque colonne appelée dans la clause SELECT.
Je conseille également de poser des alias courts sur les noms de table pour améliorer la lisibilité.
Ce qui donne donc par exemple :
HTH,
PS : Méfiez-vous de JM_Date si vous devez envisager d'autres périodes que le mois... Sans EC_Jour pas de date d'écriture
Il faudrait utiliser UNION ALL plutôt que UNION.
Pour ce type de requêtes, préfixer systématiquement toutes les tables utilisées avec le nom de la base et du schéma.
Définir un nom pour chaque colonne appelée dans la clause SELECT.
Je conseille également de poser des alias courts sur les noms de table pour améliorer la lisibilité.
Ce qui donne donc par exemple :
- Code: Tout sélectionner
SELECT 'SOCIETE1' AS Societe, EC.Ec_Jour, EC.JO_Num, PCG.CG_Num, ... FROM SOCIETE1.dbo.F_ECRITUREC EC INNER JOIN SOCIETE1.dbo.F_COMPTEG PCG ON EC.CG_NUM = PCG.CG_NUM WHERE EC.JM_Date>= '20160101' and EC.JM_Date<= '20161231'
UNION ALL
SELECT 'SOCIETE2' AS Societe, EC.Ec_Jour, EC.JO_Num, PCG.CG_Num, ... FROM SOCIETE2.dbo.F_ECRITUREC EC INNER JOIN SOCIETE2.dbo.F_COMPTEG PCG ON EC.CG_NUM = PCG.CG_NUM WHERE EC.JM_Date>= '20160101' and EC.JM_Date<= '20161231'
UNION ALL
...
HTH,
PS : Méfiez-vous de JM_Date si vous devez envisager d'autres périodes que le mois... Sans EC_Jour pas de date d'écriture
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse.
Et si on gagnait TOUS du temps ? Menu "?", A propos de
Qualité et précision de la question conditionnent celles de la réponse.
Et si on gagnait TOUS du temps ? Menu "?", A propos de
3 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité