Clipper On Line • Ver Tópico - Procurar erro no SQL

Procurar erro no SQL

Discussão sobre SQL

Moderador: Moderadores

 

Procurar erro no SQL

Mensagempor JoséQuintas » 04 Mar 2020 22:11

Meio complicado procurar um erro, tá fazendo falta recursos do MySQL 8.0 pra simplificar

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Procurar erro no SQL

Mensagempor JoséQuintas » 04 Mar 2020 22:42

A parte errada estava em outro lugar:

      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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro