Página 1 de 1

Procurar erro no SQL

Enviado: 04 Mar 2020 22:11
por JoséQuintas
Meio complicado procurar um erro, tá fazendo falta recursos do MySQL 8.0 pra simplificar

Código: Selecionar todos

SELECT LPAD( IDPRODUTO, 6, '0' ) AS ITEM,  IEDESCRI, IEULTCOM, IEULTPRE, IEULTVEN, 
IEPROGRU, IEPRODEP, IEPROSEC, IEPROLOC,  IEQTD1 + IEQTD2 + IEQTD3 + IEQTD4 AS SALDO, 
( TABELA.MES01 + TABELA.MES02 + TABELA.MES03 + TABELA.MES04 ) / 4 AS MEDIA, 
GRUPO.AXDESCRI AS GRUPO, TABELA.MES01, TABELA.MES02, TABELA.MES03, TABELA.MES04 
FROM JPITEM 
LEFT JOIN ( 
          SELECT ESPRODUTO, 
          SUM( IF( MES = '2019-11', SOMA, 0 ) ) AS MES01, 
          SUM( IF( MES = '2019-12', SOMA, 0 ) ) AS MES02, 
          SUM( IF( MES = '2020-01', SOMA, 0 ) ) AS MES03, 
          SUM( IF( MES = '2020-02', SOMA, 0 ) ) AS MES04 
          FROM ( 
               SELECT ESPRODUTO, CONCAT_WS( 
                                 '-', LPAD( Year( ESDATLAN ), 4, '0' ), LPAD( MONTH( ESDATLAN ), 2, '0' ) ) AS MES, 
               SUM( IF( JPTRANSA.TRREACAO LIKE '%DEV%', -ESQTDE, ESQTDE ) ) AS SOMA 
               FROM JPESTOQUE 
               LEFT JOIN JPPEDIDO ON JPPEDIDO.IDPEDIDO = JPESTOQUE.ESPEDIDO 
               LEFT JOIN JPTRANSA ON JPTRANSA.IDTRANSA = JPESTOQUE.ESTRANSA 
               LEFT JOIN JPNOTFIS ON JPNOTFIS.NFPEDIDO = JPPEDIDO.IDPEDIDO 
               LEFT JOIN JPITEM AS PRODUTO ON PRODUTO.IDPRODUTO = JPESTOQUE.ESPRODUTO 
               WHERE 
                  ESDATLAN BETWEEN CAST( '2019-11-01' AS DATE ) AND CAST( '2020-02-29' AS DATE ) 
                  AND JPTRANSA.TRREACAO LIKE '%VENDA%' 
                  AND JPNOTFIS.NFNOTFIS IS NOT NULL 
                  AND PRODUTO.IETIPO = 'S' 
               GROUP BY ESPRODUTO, MES 
               ) AS RESUMO GROUP BY ESPRODUTO  
         ) AS TABELA ON TABELA.ESPRODUTO = JPITEM.IDPRODUTO 
LEFT JOIN JPAUXILIAR AS GRUPO ON GRUPO.AXTABELA = 'PROGRU' AND GRUPO.AXCODIGO = JPITEM.IEPROGRU 
WHERE 
   JPITEM.IETIPO = 'S' AND 
      ( JPITEM.IEQTD1 + JPITEM.IEQTD2 + JPITEM.IEQTD3 + JPITEM.IEQTD4 <> 0 
        OR TABELA.MES01 <> 0 
        OR TABELA.MES02 <> 0 
        OR TABELA.MES03 <> 0 
        OR TABELA.MES04 <> 0 ) 
ORDER BY GRUPO, IEDESCRI

Procurar erro no SQL

Enviado: 04 Mar 2020 22:42
por JoséQuintas
A parte errada estava em outro lugar:

Código: Selecionar todos

      IF nOpcProDep == 2
         :cSql += " AND IEPRODEP <> " + NumberSQL( mIdProDep )
      ENDIF
      IF nOpcProGru == 2
         :cSql += " AND IEPROGRU <> " + NumberSQL( mIdProGru )
      ENDIF
      IF nOpcProSec == 2
         :cSql += " AND IEPROSEC <> " + NumberSQL( mIdProSec )
      ENDIF
Não era pra ser diferente, e sim igual kkkkk
Seleciona um departamento/grupo/seção, e ao invés de mostrar o que pediu, mostra tudo, menos o que pediu kkkk