tablas - renombrar columna sql
sql 2005-La columna fue especificada varias veces (5)
El problema, como se mencionó, es que está seleccionando PEID de dos tablas, la solución es especificar qué PEID desea, por ejemplo
SELECT tb.*
FROM (
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
) AS tb;
Aparte de eso, como lo señala inteligentemente Chris Lively en un comentario, el SELECT externo es totalmente superfluo. Lo siguiente es totalmente equivalente al primero.
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
o incluso
SELECT *
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
pero por favor, evite usar SELECT * siempre que sea posible . Puede funcionar mientras realiza consultas interactivas para guardar la escritura, pero en el código de producción nunca lo use.
Recibo el siguiente error al intentar ejecutar esta consulta en SQL 2005:
SELECT tb.*
FROM (
SELECT *
FROM vCodesWithPEs INNER JOIN vDeriveAvailabilityFromPE
ON vCodesWithPEs.PROD_PERM = vDeriveAvailabilityFromPE.PEID
INNER JOIN PE_PDP ON vCodesWithPEs.PROD_PERM = PE_PDP.PEID
) AS tb;
Error: The column ''PEID'' was specified multiple times for ''tb''.
Soy nuevo en sql. Gracias de antemano por su consejo.
Eneo.
En lugar de usar * para identificar la recopilación de todos los campos, vuelva a escribir su consulta para nombrar explícitamente las columnas que desea. De esa manera no habrá confusión.
Está uniendo tres tablas y mirando todas las columnas en la salida (*).
Parece que las tablas tienen un nombre de columna común PEID, que tendrá que usar como alias como otra cosa.
Solución: no utilice * en la subconsulta, pero seleccione explícitamente cada columna que desee ver, y asigne un alias al nombre de cualquier columna que aparezca más de una vez.
Parece que tiene la columna PEID en las dos tablas: vDeriveA Autentificación de EP y PE_PDP . La instrucción SELECT
intenta seleccionar ambos y da un error sobre el nombre de columna duplicado.
solo da un nuevo nombre de alias para la columna que se repite, funcionó para mí .....