Hola.
O también encerrar entre corchetes cuadrados el nombre original, así:
[Nombre Cliente]
Saludos.
Avalados por :
Buenas tardes,
Estoy haciendo una consulta, de la cual os pongo un ejemplo porque es mucho más compleja, para ver si me podéis ayudar:
Select T.CardName AS 'Nombre Cliente', SUM(T.DocTotal) AS 'Suma Total Neto'
from
(
SELECT
CardName AS 'Nombre Cliente',
DocTotal AS 'Total Neto'
FROM
OINV
WHERE CardName ='VIAJES TIME TRAVEL CT'
UNION ALL
SELECT
CardName AS 'Nombre Cliente',
-DocTotal AS 'Total Neto'
FROM ORIN
WHERE CardName ='VIAJES TIME TRAVEL CT'
) T
GROUP BY T.CardName
Me da el siguiente mensaje de error:
Msg 207, Nivel 16, Estado 1, Línea 25. Nombre de columna no válido 'CardName'.
Msg 207, Nivel 16, Estado 1, Línea 2. Nombre de columna no válido 'CardName'.
Msg 207, Nivel 16, Estado 1, Línea 2. Nombre de columna no válido 'DocTotal'.
¿Alguien me podría ayudar cómo tengo que hacer para realizar esta consulta de la unión de otras 2 subconsultas?
Muchas gracias
Hola.
O también encerrar entre corchetes cuadrados el nombre original, así:
[Nombre Cliente]
Saludos.
¡Muchas gracias!
Has acertado en el clavo, era justo lo que estaba buscando.
Lo único que he tenido que hacer para que funcione es agregar el guion bajo en los alias de esta forma:
"Nombre_Cliente" en lugar de "Nombre Cliente" y funciona perfectamente.
¡Un saludo!
Lo que sucede es que al hacer el select * from T, estás utilizando el nombre de los campos (cardname, etc.), lo que debes hacer es utilizar T.[Alias del campo] porque estás utilizando alias en los queries unidos por el UNION
INTENTA
Select T.Nombre Cliente, SUM (T.Total Neto )AS 'Suma Total Neto'
from
(
SELECT
CardName AS 'Nombre Cliente',
DocTotal AS 'Total Neto'
FROM
OINV
WHERE CardName ='VIAJES TIME TRAVEL CT'
UNION ALL
SELECT
CardName AS 'Nombre Cliente',
-DocTotal AS 'Total Neto'
FROM ORIN
WHERE CardName ='VIAJES TIME TRAVEL CT'
) T
GROUP BY T.CardName
Lo que sucede es que al hacer el select * from T, estás utilizando el nombre de los campos (cardname, etc). Lo que debes hacer es utilizar T.[Alias del campo] ya que estás utilizando alias en los queries unidos por el UNION.
INTENTA
Select T.Nombre Cliente, SUM (T.Total Neto )AS 'Suma Total Neto'
from
(
SELECT
CardName AS 'Nombre Cliente',
DocTotal AS 'Total Neto'
FROM
OINV
WHERE CardName ='VIAJES TIME TRAVEL CT'
UNION ALL
SELECT
CardName AS 'Nombre Cliente',
-DocTotal AS 'Total Neto'
FROM ORIN
WHERE CardName ='VIAJES TIME TRAVEL CT'
) T
GROUP BY T.CardName
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute