Retorno conforme situação

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

Retorno conforme situação

Mensagem por JoséQuintas »

Ainda não testei, é um dos que fui deixando pra depois.
O boleto pode ser direto para o cliente, ou para um "ciente do cliente".

Código: Selecionar todos

      WITH OBJECT cnSQL
         :cSQL := "SELECT IDFINAN, FINUMBAN, FIDATEMI, FICADASTRO, FISACADO, FIPARCELA, FIDATVEN," + ;
            " FIVALOR, FIDOCAUX, FIDATVEN, JPCADASTRO.CDNOME AS CADNOME," + ;
            " JPCADASTRO.CDCNPJ AS CADCNPJ, SACADO.CDCNPJ AS SACCNPJ," + ;
            " IF( FISACADO = 0, JPCADASTRO.CDCNPJ, SACADO.CNPJ ) AS DOCCNPJ," + ;
            " IF( FISACADO = 0, JPCADASTRO.CDNOME, SACADO.CDNOME ) AS DOCNOME," + ;
            " IF( FISACADO = 0, CONCAT_WS( JPCADASTRO.CDENDCOB, JPCADASTRO.CDNUMCOB, JPCADASTRO.CDCOMCOB ), " + ;
            " CONCAT_WS( SACADO.CDENDCOB, SACADO.CDNUMCOB, SACADO.CDCOMCOB ) ) AS DOCENDERECO," + ;
            " IF( FISACADO = 0, JPCADASTRO.CDBAICOB, SACADO.BAICOB ) AS DOCBAIRRO," + ;
            " IF( FISACADO = 0, JPCADASTRO.CDCEPCOB, SACADO.CEPCOB ) AS DOCCEP," + ;
            " IF( FISACADO = 0, JPCADASTRO.CDUFCOB, SACADO.UFCOB ) AS DOCUF," + ;
            " FROM JPFINAN" + ;
            " LEFT JOIN JPCADASTRO ON JPCADASTRO.IDCADASTRO = JPFINAN.FICADASTRO" + ;
            " LEFT JOIN JPAUXILIAR ON JPTAUXILIAR.AXTABELA = " + StringSQL( AUX_FINPOR ) + " AND AXCODIGO = JPCADASTRO.CDPORTADOR" + ;
            " LEFT JOIN JPCADASTRO AS SACADO ON SACADO.IDCADASTRO = JPFINAN.FICADASTRO" + ;
            " WHERE FIPEDIDO = " + NumberSQL( nIdPedido ) + " AND FITIPLAN = '1'"
         :Execute()
Pra facilitar na definição de nomes, usei DOCxxxx para definir os campos que saem no documento, que podem ser de um ou de outro.
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

Retorno conforme situação

Mensagem por JoséQuintas »

Só comentário adicional:

Adotei colocar o espaço em branco no início da string.
É que precisa espaço entre as palavras do comando.
Colocando no final da string, passavam muitos faltando espaço, mas colocando no início, fica bem visível se esquecer em algum.

E também adotei separar linhas em:

SELECT
FROM
LEFT JOIN
WHERE
GROUP BY
HAVING

justamente porque facilita identificar cada parte.
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