on 11-23-2009 3:32 PM
Buenas tardes,
Estoy haciendo una consulta, de la cual os pongo un ejemplo porque es mucho mas compleja, para ver si me podeis 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, Level 16, State 1, Line 25. Invalid column name 'CardName'.
Msg 207, Level 16, State 1, Line 2.Invalid column name 'CardName'.
Msg 207, Level 16, State 1, Line 2.Invalid column name 'DocTotal'.
¿Alguien me podria ayudar como tengo que hacer para hacer esta Consulta de la union de otras 2 subconsultas?
Muchas Gracias
Lo que sucede es que al hacer el select * from T, estas utilizando el nombre de los campos (cardname, etc), lo que debes hacer es utilizar T.[Alias del campo] pues, estas utilizando alias en los querys 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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Lo que sucede es que al hacer el select * from T, estas utilizando el nombre de los campos (cardname, etc), lo que debes hacer es utilizar T.[Alias del campo] pues, estas utilizando alias en los querys 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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola...
No entiendo muy bien cual es el resultado final que se espera..., sin embargo, aquí van 2 ejemplos para su análisis..
Este query es más detallado...
SELECT T0.CardName AS 'Nombre Cliente', T0.DocTotal AS 'Total Neto' FROM OINV T0 WHERE T0.CardName = 'VIAJES TIME TRAVEL CT'
UNION ALL
SELECT T1.CardName AS 'Nombre Cliente', T1.DocTotal * -1 AS 'Total Neto' FROM ORIN T1 WHERE T1.CardName = 'VIAJES TIME TRAVEL CT'
Este otro te agrupa en función del tipo de documento..
SELECT DISTINCT T0.CardName AS 'Nombre Cliente', SUM(T0.DocTotal) AS 'Total Neto' FROM OINV T0 WHERE T0.CardName = 'VIAJES TIME TRAVEL CT'
GROUP BY T0.CardName
UNION ALL
SELECT DISTINCT T1.CardName AS 'Nombre Cliente', SUM(T1.DocTotal * -1) AS 'Total Neto' FROM ORIN T1 WHERE T1.CardName = 'VIAJES TIME TRAVEL CT'
GROUP BY T1.CardName
Espero te sea de ayuda,
Saludos Cordiales,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.