|
Deux bases de données SQL Server avec même nom de table problème de correlation |
Iniciado por Jean-Marc NAHON, abr., 06 2021 10:26 AM - 5 respostas |
| |
| | | |
|
| |
Membro registado 47 mensagems Popularité : +1 (3 votes) |
|
Publicado em abril, 06 2021 - 10:26 AM |
Bonjour,
j'ai deux bases de données SQLserver qui ont des tables avec des structures différentes mais qui ont le même nom. J'ai renommé dans windev l'une deux deux afin d'avoir dans l'analyse les deux tables. J'utilise l'accès Natif SQLServer de Windev pour l'accès à ces deux bases de données.
Lorsque j'exécute cette requête
SELECT Gisement_Tracabilite.Numero AS Numero, Gisement_Tracabilite.Id AS Id, Gisement.N_Code_GIS AS N_Code_GIS FROM Gisement_Tracabilite, Gisement WHERE Gisement.T_GIS_Numero= Gisement_Tracabilite.Numero
j'ai une erreur 117 avec l'explication suivante : Description : les objets "dbo.gisement" et "dbo.gisement" dans la clause FROM ont les mêmes noms exposés. Utilisez des noms de corrélation pour les distinguer.
SELECT ([dbo].[Gisement].[Numero] AS [Numero], [dbo].[Gisement].[Id] AS [Id] FROM [dbo].[Gisement] WITH (NOLOCK), [dbo].[Gisement] WITH (NOLOCK) WHERE ([dbo].[Gisement].[T_GIS_numero] = [dbo].[Gisement].[Numero] ) ORDER BY 2
Je voudrais éviter de renommer une des tables dans mes bases de données.
En attente de vos idées
-- Jean-Marc NAHON (Gestform) |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 13 2021 - 2:16 PM |
Jean-Marc NAHON escribío:
Bonjour, j'ai deux bases de données SQLserver qui ont des tables avec des structures différentes mais qui ont le même nom. J'ai renommé dans windev l'une deux deux afin d'avoir dans l'analyse les deux tables. J'utilise l'accès Natif SQLServer de Windev pour l'accès à ces deux bases de données. Lorsque j'exécute cette requête SELECT Gisement_Tracabilite.Numero AS Numero, Gisement_Tracabilite.Id AS Id, Gisement.N_Code_GIS AS N_Code_GIS FROM Gisement_Tracabilite, Gisement WHERE Gisement.T_GIS_Numero= Gisement_Tracabilite.Numero j'ai une erreur 117 avec l'explication suivante : Description : les objets "dbo.gisement" et "dbo.gisement" dans la clause FROM ont les mêmes noms exposés. Utilisez des noms de corrélation pour les distinguer. SELECT ([dbo].[Gisement].[Numero] AS [Numero], [dbo].[Gisement].[Id] AS [Id] FROM [dbo].[Gisement] WITH (NOLOCK), [dbo].[Gisement] WITH (NOLOCK) WHERE ([dbo].[Gisement].[T_GIS_numero] = [dbo].[Gisement].[Numero] ) ORDER BY 2 Je voudrais éviter de renommer une des tables dans mes bases de données. En attente de vos idées -- Jean-Marc NAHON (Gestform)
In the SQL Standards, the vernacular 'table alias' is referred to as a correlation name and the vernacular 'column alias' is referred to as an as clause. It seems you have the two terms confused.
https://www.prepaidgiftbalance.vip/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 47 mensagems Popularité : +1 (3 votes) |
|
Publicado em abril, 14 2021 - 8:34 AM |
Bonjour,
merci pour votre réponse. En fait j'ai trouvé la solution en effectuant simplement ceci
SELECT GT.Numero AS Numero, GT.Id AS Id, G.N_Code_GIS AS N_Code_GIS FROM Gisement_Tracabilite AS GT, Gisement AS G WHERE GT_GIS_Numero= GT.Numero
-- Jean-Marc NAHON (Gestform) |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 15 2021 - 12:37 PM |
Jean-Marc NAHON escribío:
Bonjour, j'ai deux bases de données SQLserver qui ont des tables avec des structures différentes mais qui ont le même nom. J'ai renommé dans windev l'une deux deux afin d'avoir dans l'analyse les deux tables. J'utilise l'accès Natif SQLServer de Windev pour l'accès à ces deux bases de données. Lorsque j'exécute cette requête SELECT Gisement_Tracabilite.Numero AS Numero,https://www.mcdvoice.ltd/ Gisement_Tracabilite.Id AS Id, Gisement.N_Code_GIS AS N_Code_GIS FROM Gisement_Tracabilite, Gisement WHERE Gisement.T_GIS_Numero= Gisement_Tracabilite.Numero j'ai une erreur 117 avec l'explication suivante : Description : les objets "dbo.gisement" et "dbo.gisement" dans la clause FROM ont les mêmes noms exposés. Utilisez des noms de corrélation pour les distinguer. SELECT ([dbo].[Gisement].[Numero] AS [Numero], [dbo].[Gisement].[Id] AS [Id] FROM [dbo].[Gisement] WITH (NOLOCK), [dbo].[Gisement] WITH (NOLOCK) WHERE ([dbo].[Gisement].[T_GIS_numero] = [dbo].[Gisement].[Numero] ) ORDER BY 2 Je voudrais éviter de renommer une des tables dans mes bases de données. En attente de vos idées -- Jean-Marc NAHON (Gestform)
Do not use correlation. At your example you are basically comparing employees salary with average salary (of the same person where s.no=d.no).
For instance for employee no = 1 you got:
WHERE 3000 > (3000) -- false no record returned You probably want to pick employees which salary is higher than average of all employees. In that case use:
select no, name, salary from emp where salary > ( select AVG(salary) from emp d ); |
| |
| |
| | | |
|
| | |
| |
Membro registado 47 mensagems Popularité : +1 (3 votes) |
|
Publicado em abril, 15 2021 - 3:01 PM |
Bonjour,
Je voulais simplement faire une jointure simple, simplement comme les tables ont le même nom, sql Server refusé. Mais j'ai trouvé une solution
Cordialement
-- Jean-Marc NAHON (Gestform) |
| |
| |
| | | |
|
| | |
| |
Membro registado 5 mensagems |
|
Publicado em agosto, 23 2022 - 8:54 AM |
In the SQL Standards, the vernacular 'table alias' is referred to as a correlation name and the vernacular 'column alias' is referred to as an as clause. It seems you have the two terms confused. |
| |
| |
| | | |
|
| | | | |
| | |
|