Agrupar los datos provenientes de una consulta
bamdji
-
DandypunkII Mensajes publicados 70 Estado Miembro -
DandypunkII Mensajes publicados 70 Estado Miembro -
Hola, estoy lidiando con un concepto en desarrollo y estoy desarrollando una aplicación en Windev 18. Dado que soy un principiante con este lenguaje, me gustaría saber si es posible agrupar los datos de una consulta como la función GROUP BY en SQL.
Si hay alguna manera de hacerlo, por favor hágamelo saber publicando sus ejemplos de programación.
Gracias.
Si hay alguna manera de hacerlo, por favor hágamelo saber publicando sus ejemplos de programación.
Gracias.
1 respuesta
-
Hola,
Tomemos el siguiente análisis:
Deseamos obtener la suma de las compras de los clientes y su número de compras.
En SQL tendríamos:SELECT CLIENTS.PK_CLIENT AS CLIENTE, CLIENTS.NDX_NomClient AS Nombre, SUM(FACTURE_CLIENTS.Total) AS SumaDeCompras FROM CLIENTS, FACTURE_CLIENTS WHERE CLIENTS.PK_CLIENT = FACTURE_CLIENTS.FK_CLIENT GROUP BY CLIENTS.PK_CLIENT, CLIENTS.NDX_NomClient ORDER BY PK_CLIENT ASC
ySELECT CLIENTS.PK_CLIENT AS CLIENTE, CLIENTS.NDX_NomClient AS Nombre, COUNT(FACTURE_CLIENTS.PK_FACTURE_CLIENTS) AS NbFactura FROM CLIENTS, FACTURE_CLIENTS WHERE CLIENTS.PK_CLIENT = FACTURE_CLIENTS.FK_CLIENT GROUP BY CLIENTS.PK_CLIENT, CLIENTS.NDX_NomClient ORDER BY CLIENTE ASC
Con Windev tienes 2 opciones:
- Gestionar estas consultas en "modo texto" dentro de tu código a través de SQLExec (https://doc.pcsoft.fr/fr-FR/?3072007&name=SQLExec&verdisp=180%29
- Utilizar el editor de consultas.
Para ello, debes crear una nueva consulta (Nuevo/Consulta).
Tienes 6 opciones disponibles:
Seleccionar, SQL, Añadir, Unión, Modificación y Supresión.
Nos interesaremos en la opción Seleccionar.
En la zona 1 selecciona las columnas deseadas y colócalas en la zona 2 ya sea mediante un doble clic o a través de las flechas (6)
Una vez hecho esto, selecciona en la zona 2 la columna sobre la que deseas hacer el cálculo. FACTURE_CLIENT.Total (o FACTURE_CLIENT.PK_FACTURE_CLIENT.)
La zona 3 se utiliza para afinar la búsqueda. Solo tienes que seleccionar Suma (o contar), la modificación se realiza en la zona 2.
Puedes cambiar si lo deseas el nombre de las columnas que se utilizarán (el AS en SQL) a través de la zona 4.
En la zona 5, tienes la descripción de tu consulta en lenguaje natural o en SQL.
Validamos y tu consulta está disponible. Podrás probarla a través de "GO".
Como un bonus. Deseas ver aparecer a los clientes que no tienen facturas.
En SQL escribirías:SELECT CLIENTS.PK_CLIENT AS CLIENTE, CLIENTS.NDX_NomClient AS Nombre, SUM(FACTURE_CLIENTS.Total) AS SumaDeCompras FROM CLIENTS LEFT OUTER JOIN FACTURE_CLIENTS ON CLIENTS.PK_CLIENT = FACTURE_CLIENTS.FK_CLIENT GROUP BY CLIENTS.PK_CLIENT, CLIENTS.NDX_NomClient ORDER BY PK_CLIENT ASC
Con Windev:
Un doble clic en "Unión" y solo tienes que marcar la caja correspondiente.
--
Si es simple, es Windev.