Problema con UNION y ORDER en tabla temporal

14/06/2007 - 23:15 por Cristian Meneses | Informe spam
Buenas.
Tengo dentro de un procedimiento el siguiente codigo, el cual resulta
todo ok, pero no me lo ordena como quisiera. Pongo la clausula ORDER
al final y nada. Cual puede ser el error?

CREATE TABLE #AuxDetalles(
IDTipo char(2) NOT NULL,
IDRef int NOT NULL,
IDMoneda tinyint NOT NULL,
Fecha smalldatetime NOT NULL,
Detalles varchar(100) NOT NULL,
Observaciones varchar(100) NOT NULL,
Moneda varchar(10) NOT NULL,
Importe float
)

INSERT INTO #AuxDetalles
SELECT
'PE' AS IDTipo,
IDPago as 'IDRef',
Pagos.idMoneda,
Fecha,
LTRIM(descEgreso) as 'Detalles',
descPago as 'Observaciones',
simbolo as 'Moneda',
(monto * -1) as 'Importe'
FROM Pagos
INNER JOIN Egresos ON Egresos.IDEgreso = Pagos.IDEgreso
INNER JOIN Monedas ON Monedas.IDMoneda = Pagos.IDMoneda
WHERE IDCaja = @IDCaja
UNION ALL
SELECT
'CC' AS IDTipo,
IDCobro as 'IDRef',
Cobros.idMoneda as 'IDMoneda',
Fecha,
(RTRIM(descCliente) + ' - Cuota ' + RTRIM(CONVERT(VARCHAR(15),
Cuota)) + ' - ' + RTRIM(descConvenio)) as 'Detalles',
obsCobro as 'Observaciones',
simbolo as 'Moneda',
monto as 'Importe'
FROM Cobros
INNER JOIN Monedas ON Monedas.IDMoneda = Cobros.IDMoneda
INNER JOIN Cuotas ON Cuotas.IDCuota = Cobros.IDCuota
INNER JOIN Convenios ON Convenios.IDConvenio = Cuotas.IDConvenio
INNER JOIN Clientes ON Convenios.IDCliente = Clientes.IDCliente
WHERE IDCaja = @IDCaja
ORDER BY Fecha DESC


Saludos

Cristian Meneses
 

Leer las respuestas

#1 Carlos Bolivar
15/06/2007 - 07:49 | Informe spam
Amigo, cuando yo realizo una consulta, y deseo ordenarla, siempre el SQL
Server antepone lo siguiente "SELECT TOP 100 PERCENT " ve el TOP 100,
verifica eso en tu select, puede ser una posible solucion..

Saludos

"Cristian Meneses" wrote:

Buenas.
Tengo dentro de un procedimiento el siguiente codigo, el cual resulta
todo ok, pero no me lo ordena como quisiera. Pongo la clausula ORDER
al final y nada. Cual puede ser el error?

CREATE TABLE #AuxDetalles(
IDTipo char(2) NOT NULL,
IDRef int NOT NULL,
IDMoneda tinyint NOT NULL,
Fecha smalldatetime NOT NULL,
Detalles varchar(100) NOT NULL,
Observaciones varchar(100) NOT NULL,
Moneda varchar(10) NOT NULL,
Importe float
)

INSERT INTO #AuxDetalles
SELECT
'PE' AS IDTipo,
IDPago as 'IDRef',
Pagos.idMoneda,
Fecha,
LTRIM(descEgreso) as 'Detalles',
descPago as 'Observaciones',
simbolo as 'Moneda',
(monto * -1) as 'Importe'
FROM Pagos
INNER JOIN Egresos ON Egresos.IDEgreso = Pagos.IDEgreso
INNER JOIN Monedas ON Monedas.IDMoneda = Pagos.IDMoneda
WHERE IDCaja = @IDCaja
UNION ALL
SELECT
'CC' AS IDTipo,
IDCobro as 'IDRef',
Cobros.idMoneda as 'IDMoneda',
Fecha,
(RTRIM(descCliente) + ' - Cuota ' + RTRIM(CONVERT(VARCHAR(15),
Cuota)) + ' - ' + RTRIM(descConvenio)) as 'Detalles',
obsCobro as 'Observaciones',
simbolo as 'Moneda',
monto as 'Importe'
FROM Cobros
INNER JOIN Monedas ON Monedas.IDMoneda = Cobros.IDMoneda
INNER JOIN Cuotas ON Cuotas.IDCuota = Cobros.IDCuota
INNER JOIN Convenios ON Convenios.IDConvenio = Cuotas.IDConvenio
INNER JOIN Clientes ON Convenios.IDCliente = Clientes.IDCliente
WHERE IDCaja = @IDCaja
ORDER BY Fecha DESC


Saludos

Cristian Meneses


Preguntas similares