consulta sobre query

10/10/2006 - 14:59 por Mennegguzzi | Informe spam
Hola a todos, les hago la siguiente consulta, tengo esta query y no entiendo
que estoy poniendo mal porque en la primer columna me devuelve la misma
fecha para todos los registros (abajo copio un ejemplo de datos de la tabla)


SELECT (SELECT min(VTRMVC_FCHMOV) FROM VTRMVC T WHERE VTRMVC_CODAPL =
T.VTRMVC_CODFOR AND VTRMVC_NROAPL = T.VTRMVC_NROFOR) AS FECHA,
VTMCLH_NOMBRE AS RAZON_SOCIAL,
VTRMVC_CODAPL AS APL,
VTRMVC_NROAPL AS NROAPL,
VTRMVC_NROCTA AS CLIENTE,
SUM(VTRMVC_IMPNAC) AS IMPORTE
FROM VTRMVC
INNER JOIN VTMCLH ON VTRMVC_NROCTA = VTMCLH_NROCTA
WHERE (VTRMVC_FCHMOV <= (GETDATE()-45) AND VTRMVC_CODFOR <> 'RC' AND
VTRMVC_CODFOR <> 'ARC')
OR VTRMVC_CODFOR = 'RC' OR VTRMVC_CODFOR = 'ARC'
GROUP BY VTRMVC_CODAPL,
VTRMVC_NROAPL,
VTRMVC_NROCTA,
VTMCLH_NOMBRE
HAVING SUM(VTRMVC_IMPNAC) <> 0
ORDER BY VTRMVC_NROCTA,
VTRMVC_CODAPL DESC,
VTRMVC_NROAPL


ej. de datos


VTRMVC_FCHMOV VTRMVC_CODFOR VTRMVC_NROFOR VTRMVC_CODAPL
VTRMVC_NROAPL VTRMVC_IMPORT

21-09-06 FA0000 10826
FA0000 10826 100
22-09-06 FA0000 10930
FA0000 10930 230
29-09-06 RC 6897
FA0000 10826 -100
02-10-06 FA0000 11005
FA0000 11005 440
05-10-06 RC 6905
FA0000 10930 -230
06-10-06 RC 6910
FA0000 11005 -300


con los datos del ejemplo el resultado del primer campo (FECHA) de la query
me daría 21-09-06


Saludos y muchas gracias de antemano

Pablo
 

Leer las respuestas

#1 Alejandro Mesa
10/10/2006 - 16:07 | Informe spam
Mennegguzzi,

cuando uso consultas correlacionadas, siempre uso un alias para las tablas
involucradas.

SELECT (SELECT min(VTRMVC_FCHMOV) FROM VTRMVC T WHERE VTRMVC_CODAPL =
T.VTRMVC_CODFOR AND VTRMVC_NROAPL = T.VTRMVC_NROFOR) AS FECHA,
VTMCLH_NOMBRE AS RAZON_SOCIAL,
VTRMVC_CODAPL AS APL,
VTRMVC_NROAPL AS NROAPL,
VTRMVC_NROCTA AS CLIENTE,
SUM(VTRMVC_IMPNAC) AS IMPORTE
FROM VTRMVC



SELECT
(
SELECT min(T.VTRMVC_FCHMOV)
FROM VTRMVC T
WHERE
T.VTRMVC_CODFOR = a.VTRMVC_CODAPL
AND T.VTRMVC_NROFOR = a.VTRMVC_NROAPL
) AS FECHA,
VTMCLH_NOMBRE AS RAZON_SOCIAL,
VTRMVC_CODAPL AS APL,
VTRMVC_NROAPL AS NROAPL,
VTRMVC_NROCTA AS CLIENTE,
SUM(VTRMVC_IMPNAC) AS IMPORTE
FROM
VTRMVC as a
...

Tendras que arreglar el resto de la sentencia para tomar en cuenta el nuevo
alias.


AMB

"Mennegguzzi" wrote:

Hola a todos, les hago la siguiente consulta, tengo esta query y no entiendo
que estoy poniendo mal porque en la primer columna me devuelve la misma
fecha para todos los registros (abajo copio un ejemplo de datos de la tabla)


SELECT (SELECT min(VTRMVC_FCHMOV) FROM VTRMVC T WHERE VTRMVC_CODAPL =
T.VTRMVC_CODFOR AND VTRMVC_NROAPL = T.VTRMVC_NROFOR) AS FECHA,
VTMCLH_NOMBRE AS RAZON_SOCIAL,
VTRMVC_CODAPL AS APL,
VTRMVC_NROAPL AS NROAPL,
VTRMVC_NROCTA AS CLIENTE,
SUM(VTRMVC_IMPNAC) AS IMPORTE
FROM VTRMVC
INNER JOIN VTMCLH ON VTRMVC_NROCTA = VTMCLH_NROCTA
WHERE (VTRMVC_FCHMOV <= (GETDATE()-45) AND VTRMVC_CODFOR <> 'RC' AND
VTRMVC_CODFOR <> 'ARC')
OR VTRMVC_CODFOR = 'RC' OR VTRMVC_CODFOR = 'ARC'
GROUP BY VTRMVC_CODAPL,
VTRMVC_NROAPL,
VTRMVC_NROCTA,
VTMCLH_NOMBRE
HAVING SUM(VTRMVC_IMPNAC) <> 0
ORDER BY VTRMVC_NROCTA,
VTRMVC_CODAPL DESC,
VTRMVC_NROAPL


ej. de datos


VTRMVC_FCHMOV VTRMVC_CODFOR VTRMVC_NROFOR VTRMVC_CODAPL
VTRMVC_NROAPL VTRMVC_IMPORT

21-09-06 FA0000 10826
FA0000 10826 100
22-09-06 FA0000 10930
FA0000 10930 230
29-09-06 RC 6897
FA0000 10826 -100
02-10-06 FA0000 11005
FA0000 11005 440
05-10-06 RC 6905
FA0000 10930 -230
06-10-06 RC 6910
FA0000 11005 -300


con los datos del ejemplo el resultado del primer campo (FECHA) de la query
me daría 21-09-06


Saludos y muchas gracias de antemano

Pablo








Preguntas similares