filhotecmail

CrossMonth

Nov 27th, 2020 (edited)
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.42 KB | None | 0 0
  1. BEGIN
  2.   FOR
  3.     SELECT ANO,
  4.            MAX(JANEIRO) JANEIRO,
  5.            MAX(FEVEREIRO) FEVEREIRO,
  6.            MAX(MARCO) MARCO,
  7.            MAX(ABRIL) ABRIL,
  8.            MAX(MAIO) MAIO,
  9.            MAX(JUNHO) JUNHO,
  10.            MAX(JULHO) JULHO,
  11.            MAX(AGOSTO) AGOSTO,
  12.            MAX(SETEMBRO) SETEMBRO,
  13.            MAX(OUTUBRO) OUTUBRO,
  14.            MAX(NOVEMBRO) NOVEMBRO,
  15.            MAX(DEZEMBRO) DEZEMBRO,
  16.            SUM(TOTAL) AS TOTAL
  17.  
  18.       FROM
  19.       (
  20.  
  21.       SELECT EXTRACT(YEAR FROM VENDA_DATA) ANO,
  22.                    CASE
  23.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 1 THEN
  24.                       SUM(PED.VENDA_VLTOTAL)
  25.                      ELSE
  26.                       0
  27.                    END JANEIRO,
  28.                    CASE
  29.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 2 THEN
  30.                       SUM(PED.VENDA_VLTOTAL)
  31.                      ELSE
  32.                       0
  33.                    END FEVEREIRO,
  34.                    CASE
  35.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 3 THEN
  36.                       SUM(PED.VENDA_VLTOTAL)
  37.                      ELSE
  38.                       0
  39.                    END MARCO,
  40.                    CASE
  41.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 4 THEN
  42.                       SUM(PED.VENDA_VLTOTAL)
  43.                      ELSE
  44.                       0
  45.                    END ABRIL,
  46.                    CASE
  47.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 5 THEN
  48.                       SUM(PED.VENDA_VLTOTAL)
  49.                      ELSE
  50.                       0
  51.                    END MAIO,
  52.                    CASE
  53.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 6 THEN
  54.                       SUM(PED.VENDA_VLTOTAL)
  55.                      ELSE
  56.                       0
  57.                    END JUNHO,
  58.                    CASE
  59.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 7 THEN
  60.                       SUM(PED.VENDA_VLTOTAL)
  61.                      ELSE
  62.                       0
  63.                    END JULHO,
  64.                    CASE
  65.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 8 THEN
  66.                       SUM(PED.VENDA_VLTOTAL)
  67.                      ELSE
  68.                       0
  69.                    END AGOSTO,
  70.                    CASE
  71.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 9 THEN
  72.                       SUM(PED.VENDA_VLTOTAL)
  73.                      ELSE
  74.                       0
  75.                    END SETEMBRO,
  76.                    CASE
  77.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 10 THEN
  78.                       SUM(PED.VENDA_VLTOTAL)
  79.                      ELSE
  80.                       0
  81.                    END OUTUBRO,
  82.                    CASE
  83.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 11 THEN
  84.                       SUM(PED.VENDA_VLTOTAL)
  85.                      ELSE
  86.                       0
  87.                    END NOVEMBRO,
  88.                    CASE
  89.                      WHEN EXTRACT(MONTH FROM VENDA_DATA) = 12 THEN
  90.                       SUM(PED.VENDA_VLTOTAL)
  91.                      ELSE
  92.                       0
  93.                    END DEZEMBRO,
  94.                    SUM(PED.VENDA_VLTOTAL) AS TOTAL
  95.               FROM MOVPDV_VENDAS PED
  96.              WHERE
  97.               VENDA_DATA BETWEEN :PDATEINI AND :PDATEFIM
  98.                AND
  99.                  (
  100.                    ( PED.VENDA_SITUACAO CONTAINING :SITUACAOVENDA )
  101.  
  102.                  )
  103.                  AND
  104.                   (
  105.                      ( PED.SAT_SITUACAO CONTAINING :SITSAT )
  106.  
  107.                    )
  108.                    AND
  109.                    (
  110.                      (PED.PDV_NSERIESAT CONTAINING :PNUMSAT )
  111.                    )
  112.                    AND
  113.                     (
  114.                       ( PED.PDV_NUMPDV CONTAINING :PNUMPDV )
  115.                     )
  116.                     AND
  117.                     (
  118.                       ( PED.VENDA_USERPDV CONTAINING :POPERADOR )
  119.                     )
  120.  
  121.  
  122.              GROUP BY EXTRACT(YEAR FROM VENDA_DATA),
  123.                       EXTRACT(MONTH FROM VENDA_DATA)
  124.  
  125.                       )
  126.  
  127.      GROUP BY ANO
  128.      ORDER BY ANO DESC
  129.     INTO :ANO,
  130.          :JANEIRO,
  131.          :FEVEREIRO,
  132.          :MARCO,
  133.          :ABRIL,
  134.          :MAIO,
  135.          :JUNHO,
  136.          :JULHO,
  137.          :AGOSTO,
  138.          :SETEMBRO,
  139.          :OUTUBRO,
  140.          :NOVEMBRO,
  141.          :DEZEMBRO,
  142.          :TOTAL
  143.   DO
  144.   BEGIN
  145.     SUSPEND;
  146.   END
  147. END
Add Comment
Please, Sign In to add comment