ordenar antes una consulta
Publicado por Eryth (10 intervenciones) el 08/04/2006 05:21:28
Que tal amigos de la web
cordial saludos.
la presente es para pedir ayuda con una consulta en mysql, resulta que estoy diseñando un software en el cual deseo conocer el numero de meses mora de un cliente. mas o menos este es el codigo de la cosulta, es un poco largo
--------------------------------------------------------------------------------------------------------------------
SET @FAnt, @FAct;
SELECT
(@FAnt:=@FAct:=a.Fecha_Cuot_Inicial) AS FechaInicial,
a.Vlr_Cuot_Inicial, a.Docu_Cuot_Inicial,
(0) MesesMora,
(@FAnt)as fechaanterior,
(@FAct)as fechaactual
FROM
acue_pago a
WHERE
a.Nro_Compven = 299
UNION
SELECT
b.Fech_Abon_Cuot,
b.Vlr_Abon_Cuot,
b.Nro_Document,
(DATEDIFF(b.fech_abon_cuot,@fant)/30) as MesesMora1,
@fant:=@fact as fechaanterior,
@fact:=b.fech_abon_cuot as fechaactual
FROM
abon_cuot b
WHERE
b.Nro_Compven = 299
ORDER BY
FechaInicial;
--------------------------------------------------------------------------------------------------------------------
resulta que al momento de consultar, los datos no se encuetran ordenados,
la funcion ORDER BY ordena los datos despues de aberlos selecionados, por lo tanto cuando se haja la asignacion en las variables @fant y @fact, los datos aun no estan ordenados, y si una fecha es menor que otra al momento de restarle una mayor, da como resultados unos meses de interes malos.
por favor ayudenme ...... se que es largo la selecion, pero como le hago...
Dios los Bendiga A todos...
cordial saludos.
la presente es para pedir ayuda con una consulta en mysql, resulta que estoy diseñando un software en el cual deseo conocer el numero de meses mora de un cliente. mas o menos este es el codigo de la cosulta, es un poco largo
--------------------------------------------------------------------------------------------------------------------
SET @FAnt, @FAct;
SELECT
(@FAnt:=@FAct:=a.Fecha_Cuot_Inicial) AS FechaInicial,
a.Vlr_Cuot_Inicial, a.Docu_Cuot_Inicial,
(0) MesesMora,
(@FAnt)as fechaanterior,
(@FAct)as fechaactual
FROM
acue_pago a
WHERE
a.Nro_Compven = 299
UNION
SELECT
b.Fech_Abon_Cuot,
b.Vlr_Abon_Cuot,
b.Nro_Document,
(DATEDIFF(b.fech_abon_cuot,@fant)/30) as MesesMora1,
@fant:=@fact as fechaanterior,
@fact:=b.fech_abon_cuot as fechaactual
FROM
abon_cuot b
WHERE
b.Nro_Compven = 299
ORDER BY
FechaInicial;
--------------------------------------------------------------------------------------------------------------------
resulta que al momento de consultar, los datos no se encuetran ordenados,
la funcion ORDER BY ordena los datos despues de aberlos selecionados, por lo tanto cuando se haja la asignacion en las variables @fant y @fact, los datos aun no estan ordenados, y si una fecha es menor que otra al momento de restarle una mayor, da como resultados unos meses de interes malos.
por favor ayudenme ...... se que es largo la selecion, pero como le hago...
Dios los Bendiga A todos...
Valora esta pregunta


0