Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consultas Seguras

Estas en el tema de Consultas Seguras en el foro de SQL Server en Foros del Web. Buen@s a Todos amigos voy a ir al grano quiero sumar el valor 1 a la variable @puntaje cuando se de la condicion, hasta el ...
  #1 (permalink)  
Antiguo 19/12/2013, 14:15
Avatar de EderBarriosCamargo  
Fecha de Ingreso: marzo-2013
Mensajes: 55
Antigüedad: 11 años, 1 mes
Puntos: 0
Consultas Seguras

Buen@s a Todos amigos voy a ir al grano quiero sumar el valor 1 a la variable @puntaje cuando se de la condicion, hasta el momento siempre me da 0 y aveces se cumplen las condiciones
Este es el sql
Código SQL:
Ver original
  1. --Caalificar la visita 30
  2.  
  3. --Si hizo pedido + 1
  4. -- Si tomo Imventario (Todos Los itenes) +1
  5. --Si Cobro +1
  6. --Pos <150 + 1
  7. DECLARE @Puntaje AS INT;
  8. SET @Puntaje=0;
  9. SELECT
  10.   CASE 
  11.  WHEN Calificacion.Cobros>0  THEN @Puntaje+1
  12.  
  13.   WHEN Calificacion.Pedidos>0  THEN @Puntaje+1
  14.    WHEN Calificacion.Cotizaciones>0  THEN @Puntaje+1
  15.     WHEN Calificacion.Vdistancia<150  THEN @Puntaje+1
  16. END
  17. ,* ,@Puntaje AS Puntaje
  18.   FROM (SELECT V.IdVisita,V.Vdistancia,
  19. COUNT(P.IdPedido) AS Pedidos,
  20. COUNT(C.IdPedido) AS Cotizaciones,
  21. COUNT(CO.IdCobro) AS Cobros
  22.  FROM Visitas_E AS V
  23. LEFT JOIN Pedidos_E AS P ON (P.IdVisita=V.IdVisita AND P.Cotizacion='P')
  24. LEFT JOIN Pedidos_E AS C ON (C.IdVisita=V.IdVisita AND C.Cotizacion='C')
  25. LEFT JOIN Cobros AS CO ON (CO.IdVisita=V.IdVisita)
  26. WHERE V.IdVisita=30
  27.  GROUP BY V.IdVisita,V.Vdistancia) AS Calificacion
  #2 (permalink)  
Antiguo 19/12/2013, 14:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consultas Seguras

a lo que entiendo quieres el valor de 1 cuando se cumpla la condicion en la variable o quieres que se sumen dependiendo las condiciones?

Código SQL:
Ver original
  1. --Caalificar la visita 30
  2.  
  3. --Si hizo pedido + 1
  4. -- Si tomo Imventario (Todos Los itenes) +1
  5. --Si Cobro +1
  6. --Pos <150 + 1
  7. DECLARE @Puntaje AS INT;
  8. SET @Puntaje=0;
  9. SELECT @puntaje=puntaje,* FROM
  10. (
  11. SELECT
  12.   CASE  
  13.  WHEN Calificacion.Cobros>0  THEN 1
  14.  
  15.   WHEN Calificacion.Pedidos>0  THEN 1
  16.    WHEN Calificacion.Cotizaciones>0  THEN 1
  17.     WHEN Calificacion.Vdistancia<150  THEN 1
  18. END AS puntaje
  19. ,*
  20.   FROM (SELECT V.IdVisita,V.Vdistancia,
  21. COUNT(P.IdPedido) AS Pedidos,
  22. COUNT(C.IdPedido) AS Cotizaciones,
  23. COUNT(CO.IdCobro) AS Cobros
  24.  FROM Visitas_E AS V
  25. LEFT JOIN Pedidos_E AS P ON (P.IdVisita=V.IdVisita AND P.Cotizacion='P')
  26. LEFT JOIN Pedidos_E AS C ON (C.IdVisita=V.IdVisita AND C.Cotizacion='C')
  27. LEFT JOIN Cobros AS CO ON (CO.IdVisita=V.IdVisita)
  28. WHERE V.IdVisita=30
  29.  GROUP BY V.IdVisita,V.Vdistancia) AS Calificacion
  30. ) AS total

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 19/12/2013, 14:53
Avatar de EderBarriosCamargo  
Fecha de Ingreso: marzo-2013
Mensajes: 55
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Consultas Seguras

Si Libras Efectivamente quiero que se vaya sumando mas 1 cuando se cumpla la condición que esta en los when, lo ue me distes no funciona,
dice: Advertencia: el valor NULL Eliminado o agregado por otra operación set
  #4 (permalink)  
Antiguo 19/12/2013, 14:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consultas Seguras

Código SQL:
Ver original
  1. --Caalificar la visita 30
  2.  
  3. --Si hizo pedido + 1
  4. -- Si tomo Imventario (Todos Los itenes) +1
  5. --Si Cobro +1
  6. --Pos <150 + 1
  7. DECLARE @Puntaje AS INT;
  8. SET @Puntaje=0;
  9. SELECT
  10.   CASE  
  11.  WHEN Calificacion.Cobros>0  THEN SUM(1)
  12.  
  13.   WHEN Calificacion.Pedidos>0  THEN SUM(1)
  14.    WHEN Calificacion.Cotizaciones>0  THEN SUM(1)
  15.     WHEN Calificacion.Vdistancia<150  THEN SUM(1)
  16. END AS Puntaje
  17. ,*
  18.   FROM (SELECT V.IdVisita,V.Vdistancia,
  19. COUNT(P.IdPedido) AS Pedidos,
  20. COUNT(C.IdPedido) AS Cotizaciones,
  21. COUNT(CO.IdCobro) AS Cobros
  22.  FROM Visitas_E AS V
  23. LEFT JOIN Pedidos_E AS P ON (P.IdVisita=V.IdVisita AND P.Cotizacion='P')
  24. LEFT JOIN Pedidos_E AS C ON (C.IdVisita=V.IdVisita AND C.Cotizacion='C')
  25. LEFT JOIN Cobros AS CO ON (CO.IdVisita=V.IdVisita)
  26. WHERE V.IdVisita=30
  27.  GROUP BY V.IdVisita,V.Vdistancia) AS Calificacion

prueba con eso a ver que te sale :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 19/12/2013, 15:06
Avatar de EderBarriosCamargo  
Fecha de Ingreso: marzo-2013
Mensajes: 55
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Consultas Seguras

Siempre imprime 1..
  #6 (permalink)  
Antiguo 19/12/2013, 15:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consultas Seguras

y cuantos registros te regresa tu tabla? que registros regresa?? se cumple las condiciones del case??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 19/12/2013, 15:13
Avatar de EderBarriosCamargo  
Fecha de Ingreso: marzo-2013
Mensajes: 55
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Consultas Seguras

Me debuelve la cantidad de pedidos,Cotizacion y Cobros y la distancia entre el vendedor y el cliente que se hizo durante esa visita, en algunas ocaciones deberia dar cero pero siempre da 1, me da un solo registro
  #8 (permalink)  
Antiguo 19/12/2013, 16:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consultas Seguras

si es solo un registro siempre va a dar uno, porque porque nada mas te regresa un registro y el contador nada mas contaria 1, ahora como sacas esos valores??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:30.