Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-05-2022
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
Si no me equivoco, dbo.Maxima_Ventas() devuelve @table_resultado que es rellenada aquí:

Código SQL [-]
INSERT INTO @table_resultado
SELECT o.EmployeeID, e.FirstName, @max_monto
FROM Orders o
JOIN Employees e ON o.EmployeeID = e.EmployeeID
GROUP BY o.EmployeeID, e.FirstName

Esta sentencia inserta en @table_resultado todos los registros de Orders para los que existe un registro en Employees con el mismo valor en el campo EmployeeID.

Todo el trabajo que haces previamente en dbo.Maxima_Ventas() lo realizas para obtener @max_monto pero en el insert fuerzas ese valor siempre en el tercer campo de @table_resultado y entiendo que lo que buscas es que solo te muestre el empleado cuyo SUM(c.Total_Orden) Monto_total tiene el valor máximo.

Comenta si estoy en lo cierto.

Última edición por engranaje fecha: 18-05-2022 a las 09:34:44.
Responder Con Cita
  #2  
Antiguo 18-05-2022
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
Igual en el mensaje anterior la pista no fue muy clara. Para confirmar lo que comento puedes probar a modificar el insert de esta forma:

Código SQL [-]

INSERT INTO @table_resultado

SELECT o.EmployeeID, e.FirstName, SUM(c.Total_Orden) Monto_total 

FROM Orders o

CROSS APPLY dbo.costoTotal(o.OrderID) c

JOIN Employees e ON o.EmployeeID = e.EmployeeID

GROUP BY o.EmployeeID, e.FirstName

having SUM(c.Total_Orden)= @max_monto
Responder Con Cita
  #3  
Antiguo 24-05-2022
CarlosGPT CarlosGPT is offline
Registrado
 
Registrado: may 2022
Posts: 3
Poder: 0
CarlosGPT Va por buen camino
Uso de la sentencia MAX() en UDF

Es correcto amigo lo que busco es que solo me muestre el empleado cuyo SUM(c.Total_Orden) Monto_total tiene el valor máximo.
Voy a tomar en cuenta tu consejo y probaré el código modificando el insert.
Muchas gracias por la ayuda.
Responder Con Cita
  #4  
Antiguo 24-05-2022
CarlosGPT CarlosGPT is offline
Registrado
 
Registrado: may 2022
Posts: 3
Poder: 0
CarlosGPT Va por buen camino
Uso de la sentencia MAX() en UDF

Al modificar el segmento del codigo en la funcion dbo.Maxima_Ventas de la siguiente forma; no me sale ningún dato en la salida, la tabla sale vacía:
Código SQL [-]
ALTER FUNCTION dbo.Maxima_Ventas()

RETURNS @table_resultado table (IdEmpleado int, Primer_Nombre
nvarchar(10), Monto_total money)

AS

BEGIN

DECLARE @max_monto money;

SELECT @max_monto=MAX(res.Monto_total)

FROM(

SELECT SUM(c.Total_Orden) Monto_total

FROM Orders o

CROSS APPLY dbo.costoTotal(o.OrderID) c

GROUP BY o.EmployeeID

) res

INSERT INTO @table_resultado

SELECT o.EmployeeID, e.FirstName, SUM(c.Total_Orden) Monto_total 

FROM Orders o

JOIN Employees e ON o.EmployeeID = e.EmployeeID

CROSS APPLY dbo.costoTotal(o.OrderID) c 

GROUP BY o.EmployeeID, e.FirstName

having SUM(c.Total_Orden)= @max_monto

RETURN

END

-- SELECT * FROM dbo.Maxima_Ventas()
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sentencia SQL emeritos SQL 3 17-04-2009 11:38:32
Sql Sentencia jalejandro0211 SQL 3 21-11-2006 13:39:06
Uso de IN en una sentencia SQL gaby_stars SQL 7 03-09-2006 09:41:21
Sentencia SUM geovany SQL 2 29-10-2004 23:52:24
sentencia sql??? empty SQL 3 07-04-2004 11:01:32


La franja horaria es GMT +2. Ahora son las 10:31:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi