Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   LLevar totales de filas a columnas (https://www.clubdelphi.com/foros/showthread.php?t=96127)

delphi50jmb 24-02-2023 04:07:33

LLevar totales de filas a columnas
 
Hola amigos del foro.
Ya anteriormente habia comentado que trabajo en Paradox, y estoy migrando mis apicaciones a SQL-Firebird.

Tengo un cliente Chino que tiene una fabrica de masas. El vende masas de wantan mediano, masa de wantan pequeno, y masa de arrollado primavera.
tengo que realizar un informe donde presentar las ventas de cada cliente y la cantidad de masas compradas, agrupadas por columnas.

Tenemos la siguientes tablas (Ejemplo resumido).

Código Delphi [-]
  **Cabecera                                   **Detalle
    N_Factura     Total                          N_Factura   Codigo   Nombre               P_Unitario      Cantidad       Total
    ---------------------                        ---------------------------------------------------------------------------------------
     260        175.000                           260          1      Hoja Wantan Med          12.000          10        120.000
     261        210.000                           260          3      Hoja Arrollado           11.000           5         55.000
     262      1.075.000                           261          1      Hoja Wantan Med          12.000          10        120.000
                                                  261          2      Hoja Wantan Peq          15.000           6         90.000
                                                  262          3      Hoja Arrollado           11.000          50        550.000
                                                  262          2      Hoja Wantan Peq          15.000          35        525.000

Entonces.., quisiera hacer una consulta SQL, que me entregue un resultado asi:

Código Delphi [-]
    N_Factura        WM        WP     AP             Total
     ----------------------------------------------------
       260           10        0       5         175.000
       261           10        6       0         210.000
       262            0       35      50       1.075.000
*Observacion: WM = Wantan Mediano, WP = Wantan Pequeno, AP = Arrollado Primavera.


Es posible hacer esto?...

E intentado, pero no logro dar con el resultado esperado.

De antemano.
Gracias.

duilioisola 24-02-2023 08:35:10

Una opción es hacerlo con subselects:

Código SQL [-]
-- Recorro CABECERA
--  * Traigo datos de CABECERA
--  * De cada registro obtengo SUMas del detalle asociado (detalles con mismo nro. de factura) para un CODIGO de artículo determinado.
select
    c.n_factura,
    (select sum(cantidad) from detalle where n_factura=c.n_factura and codigo = 1) as wm,
    (select sum(cantidad) from detalle where n_factura=c.n_factura and codigo = 2) as wp,
    (select sum(cantidad) from detalle where n_factura=c.n_factura and codigo = 3) as ap,
    c.total
from cabecera c
order by by c.n_factura

delphi50jmb 24-02-2023 15:04:51

Genial. ^\||/

Gracias duiliosola.
Una vez mas diste con la solucion a mi problema. Te estoy muy agradecido.

Gracias.
Saludos.
Jose Miguel B.


La franja horaria es GMT +2. Ahora son las 02:09:24.

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