elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Clientes que hayan realizado más de 5 órdenes por año [DB Northwind]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clientes que hayan realizado más de 5 órdenes por año [DB Northwind]  (Leído 1,917 veces)
S4ms3pi0l__

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Clientes que hayan realizado más de 5 órdenes por año [DB Northwind]
« en: 6 Abril 2019, 04:42 am »

Tengo el siguiente problema: Seleccionar a todos los clientes que hayan realizado más de 5 órdenes por año. Presentar el detalle de las cantidad por año. Ordenar por año.

Esto es lo que yo hice y que no sé si está correcto:

Código
  1. ALTER PROCEDURE SP_TopClientes
  2. AS
  3. CREATE TABLE #HistorialCantidad(
  4. --IdHistorial int primary key identity(0,1),
  5. Nombre VARCHAR(100),
  6. Año INT,
  7. Cantidad INT
  8. )
  9. CREATE TABLE #Año(
  10. Id INT PRIMARY KEY IDENTITY(0,1),
  11. Año INT
  12. )
  13. INSERT INTO #Año
  14. SELECT DISTINCT YEAR(OrderDate) FROM Orders
  15. DECLARE @Contador INT
  16. SET @Contador = 0
  17. WHILE(@Contador < (SELECT COUNT(*) FROM #Año))
  18. BEGIN
  19. INSERT INTO #HistorialCantidad
  20. SELECT DISTINCT TOP 5
  21. c.CompanyName AS [Nombre Compañía],
  22. YEAR(o.OrderDate) AS Año,
  23. COUNT(*) AS Cantidad
  24. FROM [ORDER Details] od
  25. INNER JOIN Orders o ON o.OrderID = od.OrderID
  26. INNER JOIN Customers c ON c.CustomerID = o.CustomerID
  27. WHERE YEAR(o.OrderDate) = (SELECT Año FROM #Año WHERE Id = @Contador)
  28. GROUP BY c.CompanyName, YEAR(o.OrderDate)
  29. ORDER BY Cantidad DESC
  30.  
  31. SET @Contador = @Contador+1
  32. END
  33. SELECT * FROM #HistorialCantidad ORDER BY Año, Cantidad
  34. DROP TABLE #HistorialCantidad
  35. DROP TABLE #Año
  36.  

Espero puedan ayudarme.


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.057



Ver Perfil
Re: Clientes que hayan realizado más de 5 órdenes por año [DB Northwind]
« Respuesta #1 en: 7 Abril 2019, 03:38 am »

Saludos,

- Yo lo estoy entendiendo así:

-- Seleccionar a todos los clientes que hayan realizado más de 5 órdenes por año.
-- Presentar el detalle de las cantidad por año. Ordenar por año

Código
  1. SELECT
  2.  CustomerID,
  3.  YEAR(OrderDate) AS Año,
  4.  COUNT(OrderID)  AS Cantidad
  5. FROM Orders
  6. GROUP BY YEAR(OrderDate), CustomerID
  7. HAVING COUNT(OrderID) > 5
  8. ORDER BY Año

Código:
+------------+------+----------+
| CustomerID | Año  | Cantidad |
+------------+------+----------+
| ERNSH      | 1996 |        6 |
| QUICK      | 1996 |        6 |
| RATTC      | 1996 |        6 |
| AROUT      | 1997 |        7 |
| BERGS      | 1997 |       10 |
| BLONP      | 1997 |        7 |
| BONAP      | 1997 |        8 |
| BSBEV      | 1997 |        6 |
| ERNSH      | 1997 |       15 |
| FOLKO      | 1997 |        7 |
| FRANK      | 1997 |        8 |
| GOURL      | 1997 |        7 |
| GREAL      | 1997 |        6 |
| HILAA      | 1997 |       10 |
| HUNGO      | 1997 |       10 |
| KOENE      | 1997 |        8 |
| LAMAI      | 1997 |        8 |
| LEHMS      | 1997 |        8 |
| MEREP      | 1997 |       10 |
| OTTIK      | 1997 |        6 |
| PICCO      | 1997 |        6 |
| QUEEN      | 1997 |        7 |
| QUICK      | 1997 |       14 |
| RATTC      | 1997 |        6 |
| REGGC      | 1997 |        6 |
| SAVEA      | 1997 |       17 |
| VAFFE      | 1997 |        6 |
| WARTH      | 1997 |       10 |
| WHITC      | 1997 |        8 |
| BONAP      | 1998 |        6 |
| BOTTM      | 1998 |        8 |
| ERNSH      | 1998 |        9 |
| FOLKO      | 1998 |        9 |
| GODOS      | 1998 |        7 |
| HANAR      | 1998 |        7 |
| HILAA      | 1998 |        6 |
| LINOD      | 1998 |        7 |
| QUICK      | 1998 |        8 |
| RATTC      | 1998 |        6 |
| SAVEA      | 1998 |       11 |
| SUPRD      | 1998 |        6 |
+------------+------+----------+


En línea

S4ms3pi0l__

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Clientes que hayan realizado más de 5 órdenes por año [DB Northwind]
« Respuesta #2 en: 7 Abril 2019, 22:41 pm »

Saludos,

- Yo lo estoy entendiendo así:

-- Seleccionar a todos los clientes que hayan realizado más de 5 órdenes por año.
-- Presentar el detalle de las cantidad por año. Ordenar por año

Código
  1. SELECT
  2.  CustomerID,
  3.  YEAR(OrderDate) AS Año,
  4.  COUNT(OrderID)  AS Cantidad
  5. FROM Orders
  6. GROUP BY YEAR(OrderDate), CustomerID
  7. HAVING COUNT(OrderID) > 5
  8. ORDER BY Año

Código:
+------------+------+----------+
| CustomerID | Año  | Cantidad |
+------------+------+----------+
| ERNSH      | 1996 |        6 |
| QUICK      | 1996 |        6 |
| RATTC      | 1996 |        6 |
| AROUT      | 1997 |        7 |
| BERGS      | 1997 |       10 |
| BLONP      | 1997 |        7 |
| BONAP      | 1997 |        8 |
| BSBEV      | 1997 |        6 |
| ERNSH      | 1997 |       15 |
| FOLKO      | 1997 |        7 |
| FRANK      | 1997 |        8 |
| GOURL      | 1997 |        7 |
| GREAL      | 1997 |        6 |
| HILAA      | 1997 |       10 |
| HUNGO      | 1997 |       10 |
| KOENE      | 1997 |        8 |
| LAMAI      | 1997 |        8 |
| LEHMS      | 1997 |        8 |
| MEREP      | 1997 |       10 |
| OTTIK      | 1997 |        6 |
| PICCO      | 1997 |        6 |
| QUEEN      | 1997 |        7 |
| QUICK      | 1997 |       14 |
| RATTC      | 1997 |        6 |
| REGGC      | 1997 |        6 |
| SAVEA      | 1997 |       17 |
| VAFFE      | 1997 |        6 |
| WARTH      | 1997 |       10 |
| WHITC      | 1997 |        8 |
| BONAP      | 1998 |        6 |
| BOTTM      | 1998 |        8 |
| ERNSH      | 1998 |        9 |
| FOLKO      | 1998 |        9 |
| GODOS      | 1998 |        7 |
| HANAR      | 1998 |        7 |
| HILAA      | 1998 |        6 |
| LINOD      | 1998 |        7 |
| QUICK      | 1998 |        8 |
| RATTC      | 1998 |        6 |
| SAVEA      | 1998 |       11 |
| SUPRD      | 1998 |        6 |
+------------+------+----------+

Sí, está perfecto. Al final, creo que, lo terminaste simplificando. Muchas gracias por tu ayuda ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Censura ( ordenes de arriba? ) « 1 2 »
Sugerencias y dudas sobre el Foro
ozzmadark 11 4,992 Último mensaje 24 Junio 2006, 20:41 pm
por Anakin2001
imprimir un excel realizado con vb
Programación Visual Basic
jexe 0 1,101 Último mensaje 31 Mayo 2006, 15:28 pm
por jexe
Base de datos Northwind para Mysql
Bases de Datos
Lupin 2 10,757 Último mensaje 25 Febrero 2010, 03:23 am
por Lupin
guardar lo realizado en una lista
Programación C/C++
fafafa01 1 1,578 Último mensaje 29 Mayo 2016, 01:21 am
por AlbertoBSD
AYUDA CONVERTIR ORDENES DE BOTONES DE MOUSE EN ORDENES DE TECLAS
Dudas Generales
Rebelion 2 2,906 Último mensaje 28 Marzo 2019, 16:28 pm
por Rebelion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines