Notifications
Clear all

Buscar data na celula pelo SQL.

2 Posts
2 Usuários
0 Reactions
972 Visualizações
(@darkhid)
Posts: 1
New Member
Topic starter
 

Tenho uma conexão com o banco de dados da totvs, onde o mesmo faz a busca de vários campos para serem tratados depois com formulas, gostaria de saber como faço buscar o dados do banco somente digitando a data do periodo em uma celula na planilha sem que eu tenha que ficar editando manual o codigo.

Segue o codigo abaixo:

SELECT

RTRIM(A1_MUN) as 'Cidade',      
F2_DOC as 'Nota Fiscal',

      D2_PEDIDO AS 'Pedido',

      CONVERT(VARCHAR,CONVERT(DATETIME,F2_EMISSAO),103) as 'Data Emissão',

      --F2_EMISSAO as 'Data Emissão',

      RTRIM(A1_NOME) as 'Nome Cliente',

      RTRIM(A1_EST) as 'UF',

     RTRIM(A1_CGC) as 'CNPJ',     

      RTRIM(F2_VEND1) as 'Cod_Repr',

      RTRIM(A3_NOME) as 'Representante',

      A3_COMIS * D2_TOTAL as 'Valor Comissão',

      RTRIM(D2_CF) as 'CFOP',

      RTRIM(D2_COD) as 'Código Produto',

     RTRIM( B1_DESC) as 'Nome Produto',

     RTRIM( B1_SEGUM) as 'Unidade Medida',

      RTRIM(B1_GRUPO) AS 'Grupo',

     RTRIM(BM_DESC) AS ' Descricão Grupo',

      --D2_TP as 'Tipo do Produto',
      
      F4_DUPLIC as 'Gera Financeiro',

          CASE B1_TIPCONV

          WHEN 'D' THEN D2_QUANT / B1_CONV

          WHEN 'M' THEN D2_QUANT * B1_CONV

      END as 'Quantidade',

      CASE B1_TIPCONV

          WHEN 'D' THEN B1_CONV * D2_PRCVEN

          WHEN 'M' THEN B1_CONV / D2_PRCVEN

      END as 'Valor Unitário',

      0.00 as '% Desconto',

      D2_DESC as 'Valor Desconto',

      D2_TOTAL as 'Total dos Produtos',

      D2_PICM as 'Aliq. ICMS',

      D2_BASEICM as 'Base ICMS',

      D2_VALICM as 'Valor ICMS',

      D2_IPI as 'Aliq. IPI',

      D2_BASEIPI as 'Base IPI',

      D2_VALIPI as 'Valor IPI',

      D2_ICMSRET as 'Valor ST',

      D2_TOTAL + D2_VALIPI + D2_ICMSRET as 'Total da Nota',

     DA3_PLACA as 'Placa Veículo',
      
     F2_COND as 'Código Condição',
      
      --E4_COND,
      
     RTRIM (E4_DESCRI) as 'Condição de pagamento',
      CASE F2_ZZFORMA 
  WHEN 'R$' THEN 'DINHEIRO' 
  WHEN 'BOL' THEN 'BOLETO'
  WHEN 'CH' THEN 'CHEQUE'
  WHEN 'CA' THEN 'CARTEIRA'
  END
   AS 'FORMA DE PAGAMENTO'      
      --F2_ZZFORMA as 'Forma de Pagamento'

FROM

      PRODUCAO..SA1010

RIGHT JOIN

      PRODUCAO..SF2010

ON

      A1_COD = F2_CLIENTE

      AND

      A1_LOJA = F2_LOJA

   
LEFT JOIN

      PRODUCAO..SA3010

ON

      A3_COD = F2_VEND1

LEFT JOIN

      PRODUCAO..SD2010

ON

      D2_DOC = F2_DOC

      AND

      D2_SERIE = F2_SERIE

      AND

      D2_FILIAL = F2_FILIAL

      AND

      D2_CLIENTE = F2_CLIENTE

      AND

      D2_LOJA = F2_LOJA

LEFT JOIN

      PRODUCAO..SB1010

ON

      B1_COD = D2_COD

LEFT JOIN

      PRODUCAO..SF4010

ON

      F4_CODIGO = D2_TES

      --faltava relacionar filial da SF4 com a filial da SD2

      AND

      F4_FILIAL = D2_FILIAL

LEFT JOIN

      PRODUCAO..DA3010

ON

      DA3_COD = F2_VEICUL1

      --faltava relacionar filial da DA3 com a filial da SF2

      AND

      DA3_FILIAL = F2_FILIAL

LEFT JOIN

      PRODUCAO..SBM010

ON

      BM_GRUPO = B1_GRUPO
      
 
 LEFT JOIN 
 
   PRODUCAO..SE4010
   
ON
   E4_CODIGO  = F2_COND   
      

WHERE

      ISNULL(PRODUCAO..SA1010.D_E_L_E_T_, '') != '*'

      AND

      ISNULL(PRODUCAO..SF2010.D_E_L_E_T_, '') != '*'

      AND

      ISNULL(PRODUCAO..SA3010.D_E_L_E_T_, '') != '*'

      AND

      ISNULL(PRODUCAO..SD2010.D_E_L_E_T_, '') != '*'

      AND

      ISNULL(PRODUCAO..SB1010.D_E_L_E_T_, '') != '*'

      AND

      ISNULL(PRODUCAO..SF4010.D_E_L_E_T_, '') != '*'

      AND

      ISNULL(PRODUCAO..DA3010.D_E_L_E_T_, '') != '*'

       AND
   
   (D2_TP = 'PA' OR D2_TP = 'PR')
  
       AND
      
   F2_EMISSAO BETWEEN '20150101' AND '20150122'         
     

 order by 1,2

Obrigado pela atenção de todos.

 
Postado : 23/01/2015 12:45 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mas aonde é montado a instrução Select? não é VBA, e no próprio TotVs
No VB poderia algo +/- assim (sem testar pois não sei o editor)
data em A1 = 01/01/2015 em B1= 22/01/2015
F2_EMISSAO BETWEEN "'" & Format([A1].value, "yyyymmdd") & "'" and "'" & Format([B1].value, "yyyymmdd") & "'"

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/01/2015 2:03 pm