Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2012, 13:04
beyrouty
 
Fecha de Ingreso: febrero-2012
Mensajes: 4
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Como condicionar SUM en procedimiento almacenado

Buenas tardes, soy nueva por aquí, y agradesco de antemano por la ayuda que podrían ofrecerme :)..

El problema es el siguiente, debo hacer un procedimiento almacenado, donde:

Si las ventas totales de los clientes es mayor a 500.000 entonces que se cumpla la siguiente condicion :

Modificar el estatus de los clientes de menudeo(1) a mayoreo (2).


Mi base de datos cuenta con 10 tablas.
  • Clientes
  • Articulos
  • Datos_generales
  • detalle_art
  • Lineas
  • Localidad
  • Proveedores
  • Usuarios
  • Ventas_det
  • Ventas_generales

En ventas_det están los siguientes campos:
  • vd_folio (el folio de compra que tiene cada cliente)
  • vd_cod (el codigo del producto)
  • vd_cant (cantidad de lo que se compra)
  • vd_precio

en ventas_generales están los siguientes campos:
  • vg_folio (está es la llave primaria, aquí es folio por cliente de cada venta q realiza)
  • vg_cte (codigo del cliente)
  • vg_tipo
  • vg_status

Según yo... debo sumar todas las ventas que tiene 1 cliente dependiendo de su folio, si todas esas ventas q tiene el cliente son superiores a 500.000 entonces se cumpliria la condicion de cambiar el estatus de menudeo a mayoreo.

este estatus se cambia de la tabla clientes.

Así es como tengo mi desastre de query.. :


USE VENTAS
GO
ALTER PROCEDURE SP_VENTAS2
@OPCION AS TINYINT

AS
BEGIN
IF (@OPCION=1)
BEGIN
IF (select SUM (vd_precio * vd_cant) > 500 from ventas_det)
BEGIN
UPDATE clientes SET cl_estatus=2 where cl_estatus = 1
END
END
END
ELSE
BEGIN
SELECT ('Valor fuera de rango') as Mensaje
END

Me sale el siguiente error :

Mens 102, Nivel 15, Estado 1, Procedimiento SP_VENTAS2, Línea 7
Sintaxis incorrecta cerca de '>'.

No sé nisiquiera si tengo bien la condicion... de que si el total de las ventas de los clientes es mayor de 500.000 entonces ejecutara la condicon de actalizar el estatus...




Gracias!