Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2011, 07:25
zxcvpk
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Duda con el if y el case

Hola:
Estoy haciendo esta consulta en sql y no sé a que se debe el error, la consulta es la siguiente y quiero que siempre que el saldo sea mayor que 0 si las unidades son mayor que uno me clacula la existencia de una forma y si no la disminuye.

SELECT TOP (100) PERCENT dbo.ReporteCualitativo.Fecha, dbo.PisosVenta.IdDivision, dbo.ReporteCualitativoDetalle.IdPlantilla,
COUNT(dbo.PisosVenta.IdUnidad) AS Unidades, dbo.Plantilla.Nombre, SUM(dbo.ReporteCualitativoDetalle.Saldo) AS Saldo,
if COUNT(dbo.ReporteCualitativoDetalle.Saldo)>0
begin
case COUNT(dbo.PisosVenta.IdUnidad) when 1 then COUNT(DISTINCT dbo.ReporteCualitativoDetalle.Saldo) else COUNT(DISTINCT dbo.ReporteCualitativoDetalle.Saldo)-1 end
end
AS Existe FROM dbo.Plantilla INNER JOIN
dbo.ReporteCualitativoDetalle ON dbo.Plantilla.IdPlantilla = dbo.ReporteCualitativoDetalle.IdPlantilla INNER JOIN
dbo.ReporteCualitativo ON dbo.ReporteCualitativoDetalle.IdPiso = dbo.ReporteCualitativo.IdPiso INNER JOIN
dbo.PisosVenta ON dbo.ReporteCualitativoDetalle.IdPiso = dbo.PisosVenta.IdPiso WHERE (dbo.PisosVenta.Abierta = 1)AND (dbo.PisosVenta.IdDivision = @IdUC)AND (dbo.ReporteCualitativo.Fecha=@Fecha) GROUP BY dbo.ReporteCualitativo.Fecha, dbo.PisosVenta.IdDivision, dbo.Plantilla.Nombre, dbo.ReporteCualitativoDetalle.IdPlantilla,
dbo.PisosVenta.Abierta HAVING (COUNT(dbo.ReporteCualitativoDetalle.Saldo) > 0) ORDER BY dbo.ReporteCualitativo.Fecha, dbo.PisosVenta.IdDivision, dbo.ReporteCualitativoDetalle.IdPlantilla

alguien me pudiera ayudar?