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

Problemas con Funcion SQL

Estas en el tema de Problemas con Funcion SQL en el foro de SQL Server en Foros del Web. Hola Amigos ....no tengo mucha experiencia en SQL y requiero de ustedes para solventar un problema con una funcion. Intento hacer una consulta de mi ...
  #1 (permalink)  
Antiguo 20/01/2010, 22:07
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Problemas con Funcion SQL

Hola Amigos ....no tengo mucha experiencia en SQL y requiero de ustedes para solventar un problema con una funcion.

Intento hacer una consulta de mi tabla CUSTOMER en la cual llamo una funcion para obtener el total del ordenes de venta por CLIENTE que se registran en la tabla ORDERS, pero resulta que al hacer la consulta me devuelve Cero (0) como valor de retorno....el codigo q tengo para funciones definida por el usuario es el siguiente.

CREATE FUNCTION dbo.VENTAS(@codigo nchar)
RETURNS int AS
BEGIN

RETURN (SELECT COUNT(OrderID)
FROM ORDERS
WHERE
CUSTOMERID=@codigo)
END

Y esta es la consulta q realizo

SELECT CUSTOMERID,CUSTOMERNAME,DBO.VENTAS(CUSTOMERID) AS VENTASTOTALES
FROM CUSTOMERS
ORDER BY CUSTOMERID

como ejemplo obtengo estos valores:

CUSTOMERID CUSTOMERNAME VENTASTOTALES
----------------- --------------------- ---------------------
CE0001 EDGAR LOPEZ 0
CE0002 IMPORT CARS 0

pero me devuelve 0 en el valor de la funcion...que esta malo?
  #2 (permalink)  
Antiguo 21/01/2010, 07:16
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Problemas con Funcion SQL

La funcion se ve bien, y deberia funcionar aunque no de forma optima...

Lo mejor es hacer hacerlo de forma masiva...

Código:
SELECT   C.CUSTOMERID
        ,C.CUSTOMERNAME
        ,ISNULL(S.TOTAL, 0) AS VENTASTOTALES
FROM     CUSTOMERS C
LEFT JOIN
        (
         SELECT   CUSTOMERID
                 ,COUNT(*) TOTAL
         FROM     ORDERS
         GROUP BY CUSTOMERID
        ) S
ON       C.CUSTOMERID = S.CUSTOMERID
ORDER BY C.CUSTOMERID

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Etiquetas: funcion, 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 18:16.