Você já precisou montar algum relatório com informação de duas tabelas de empresas diferentes, como por exemplo, SB1010 e SB1020? Veja como fazer a query para o relatório no artigo de hoje.
Uma funcionalidade muito útil em queries SQL, mas pouco explorada por analistas do mundo Protheus, é a união de queries.
Basicamente, unir queries, significa que você pode ter 2 ou mais queries, e unir o resultado delas. Dessa forma, você pode ter uma query na SB1010 e SB1020 e unir as duas, saindo tudo em um mesmo resultado.
Assim como, você também poderia ter uma query buscando as saídas na SF2010 e as entradas na SF1010 e unir as duas.
Para unir as queries, é utilizado o comando UNION ALL, e ambas as queries precisam ter o mesmo número de colunas e o mesmo tipo de informação nelas. Além disso, só pode ter uma expressão de ordenação (ORDER BY), no fim da query.
Abaixo um exemplo, unindo uma query listando as NFs de Saída com uma query listando as NFs de Entrada:
SELECT 'SAIDA' AS TIPO, F2_EMISSAO AS EMISSAO, F2_DOC AS DOCUMENTO, F2_SERIE AS SERIE FROM SF2010 SF2 WHERE F2_FILIAL = '01' AND F2_EMISSAO = '20201109' AND F2_TIPO NOT IN ('B', 'D') AND SF2.D_E_L_E_T_ = ' ' UNION ALL SELECT 'ENTRADA' AS TIPO, F1_EMISSAO AS EMISSAO, F1_DOC AS DOCUMENTO, F1_SERIE AS SERIE FROM SF1010 SF1 WHERE F1_FILIAL = '01' AND F1_DTDIGIT = '20201109' AND F1_TIPO NOT IN ('B', 'D') AND SF1.D_E_L_E_T_ = ' ' ORDER BY EMISSAO
A partir disso, com essa query você consegue criar relatórios em AdvPL, inclusive se você quiser usar o Autumn Code Maker, abaixo um vídeo de como é fácil gerar um código fonte através de uma query:
Bom pessoal, por hoje é só.
Abraços e até a próxima.