Duda con valores de subconsultas..

08/04/2005 - 19:17 por K | Informe spam
Hola grupo una pequeña pregunta tengo esta consulta que hasta ahora
esta bien (bueno para mi) :-), como ven las dos ultimas columnas son
subconsultas.

Bueno quiero sacar una columna mas en la que tengo que hacer comparaciones
con esas 2 , el punto es que no quiero estar haciendo
la subconsulta para cada comparacion que tenga que hacer, no hay una
forma de guardar los datos que ya me devolvio en las columnas que saque
y trabajar con esos valores...

Muchas Gracias por su ayuda

DECLARE @IGV DECIMAL(10,2), @Mes INT, @Año INT
SET @IGV=(19.00 + 100)/100
SET @Mes = 1
SET @Año = 2005

SELECT DFVenta.[Rec Nº], FOS.Cliente, FOS.Estado,
RIGHT('000' + CONVERT(NVARCHAR(3),F.SerieCotizacion),3) +
RIGHT('0000000' + CONVERT(NVARCHAR(7),F.NumeroCotizacion),7)
AS [Nº Cotizacion],
DFVenta.CT, ROUND(DFVenta.CT/ @IGV,2) AS [Pago sin IGV],
(SELECT TOP 1ROUND(DFV2.CT/@IGV,2)
FROM DFVenta DFV2 WHERE DFV2.Fecha < DFVenta.Fecha AND
DFV2.SerieCotizacionßVenta.SerieCotizacion AND
DFV2.NumeroCotizacionßVenta.NumeroCotizacion)
AS [PAGO ANT LUCES],ROUND(DFVenta.CT/ @IGV,2) +
(SELECT TOP 1ROUND(DFV2.CT/@IGV,2)
FROM DFVenta DFV2 WHERE DFV2.Fecha < DFVenta.Fecha AND
DFV2.SerieCotizacionßVenta.SerieCotizacion AND
DFV2.NumeroCotizacionßVenta.NumeroCotizacion) AS [Total Luces
Pagadas],
FROM Factura F INNER JOIN FichaObra_SubTotal FOS ON
F.SerieCotizacion = FOS.SerieFichaObra AND
F.NumeroCotizacion = FOS.NumeroFichaObra INNER JOIN
DFVenta ON F.SerieCotizacion = DFVenta.SerieCotizacion AND
F.NumeroCotizacion = DFVenta.NumeroCotizacion
WHERE MONTH(DFVenta.Fecha)=@Mes AND YEAR(DFVenta.Fecha)=@Año
AND LEFT(FOS.Cliente,2)='TN'
GROUP BY DFVenta.[Rec Nº], FOS.Cliente, FOS.Estado,
RIGHT('000' + CONVERT(NVARCHAR(3),F.SerieCotizacion),3) +
RIGHT('0000000' + CONVERT(NVARCHAR(7),F.NumeroCotizacion),7) ,
DFVenta.CT, ROUND(DFVenta.CT/
@IGV,2),DFVenta.Fecha,DFVenta.SerieCotizacion,
DFVenta.NumeroCotizacion
ORDER BY DFVenta.NumeroCotizacion
 

Leer las respuestas

#1 Alejandro Mesa
08/04/2005 - 19:35 | Informe spam
Si. Usa el resultado del query como una tabla derivada.

Ejemplo:

select ..., [PAGO ANT LUCES], [Total Luces Pagadas]
from (tu query sin order by) as t
order by ...


AMB


"" wrote:

Hola grupo una pequeña pregunta tengo esta consulta que hasta ahora
esta bien (bueno para mi) :-), como ven las dos ultimas columnas son
subconsultas.

Bueno quiero sacar una columna mas en la que tengo que hacer comparaciones
con esas 2 , el punto es que no quiero estar haciendo
la subconsulta para cada comparacion que tenga que hacer, no hay una
forma de guardar los datos que ya me devolvio en las columnas que saque
y trabajar con esos valores...

Muchas Gracias por su ayuda

DECLARE @IGV DECIMAL(10,2), @Mes INT, @Año INT
SET @IGV=(19.00 + 100)/100
SET @Mes = 1
SET @Año = 2005

SELECT DFVenta.[Rec Nº], FOS.Cliente, FOS.Estado,
RIGHT('000' + CONVERT(NVARCHAR(3),F.SerieCotizacion),3) +
RIGHT('0000000' + CONVERT(NVARCHAR(7),F.NumeroCotizacion),7)
AS [Nº Cotizacion],
DFVenta.CT, ROUND(DFVenta.CT/ @IGV,2) AS [Pago sin IGV],
(SELECT TOP 1ROUND(DFV2.CT/@IGV,2)
FROM DFVenta DFV2 WHERE DFV2.Fecha < DFVenta.Fecha AND
DFV2.SerieCotizacionßVenta.SerieCotizacion AND
DFV2.NumeroCotizacionßVenta.NumeroCotizacion)
AS [PAGO ANT LUCES],ROUND(DFVenta.CT/ @IGV,2) +
(SELECT TOP 1ROUND(DFV2.CT/@IGV,2)
FROM DFVenta DFV2 WHERE DFV2.Fecha < DFVenta.Fecha AND
DFV2.SerieCotizacionßVenta.SerieCotizacion AND
DFV2.NumeroCotizacionßVenta.NumeroCotizacion) AS [Total Luces
Pagadas],
FROM Factura F INNER JOIN FichaObra_SubTotal FOS ON
F.SerieCotizacion = FOS.SerieFichaObra AND
F.NumeroCotizacion = FOS.NumeroFichaObra INNER JOIN
DFVenta ON F.SerieCotizacion = DFVenta.SerieCotizacion AND
F.NumeroCotizacion = DFVenta.NumeroCotizacion
WHERE MONTH(DFVenta.Fecha)=@Mes AND YEAR(DFVenta.Fecha)=@Año
AND LEFT(FOS.Cliente,2)='TN'
GROUP BY DFVenta.[Rec Nº], FOS.Cliente, FOS.Estado,
RIGHT('000' + CONVERT(NVARCHAR(3),F.SerieCotizacion),3) +
RIGHT('0000000' + CONVERT(NVARCHAR(7),F.NumeroCotizacion),7) ,
DFVenta.CT, ROUND(DFVenta.CT/
@IGV,2),DFVenta.Fecha,DFVenta.SerieCotizacion,
DFVenta.NumeroCotizacion
ORDER BY DFVenta.NumeroCotizacion



Preguntas similares