Procurar erro no SQL

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Procurar erro no SQL

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Procurar erro no SQL

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder