none
Duvida - SQL (duas tabelas em excel para SQL) RRS feed

  • Discussão Geral

  • Bom dia Estou com uma duvida , que creio ser simples para os veteranos do forum Não tenho muita noção de SQL, mas preciso integrar dois arquivos em excel Um de estoque e um de vendas São dois xls diferentes . Os dois possuem um BD (aba) chamada "Base Geral" Tenho colunas de marca, produto, mês, ano e valores... onde: Na planilha de estoque , o meu campo de valor se chama ESTOQUE e na de vendas, VENDA Preciso criar uma terceira planilha que consolide as duas via Query, onde eu levarei as colunas de (MARCA / PRODUTO / ANO / MES) das duas e levarei a ESTOQUE e VENDAS tambem, além de criar uma terceira coluna.. Nessa terceira coluna, chamada "SAIDA ESTOQUE", a formula é a seguinte: SAIDA ESTOQUE = Estoque do mês anterior* + venda - estoque do mês atual Desta forma, no estoque do mes anterior, precisaria fazer um prov ou somase, puxando o valor do mes anterior... por exemplo. se eu trouxer uma linha que tenha mes de fevereiro, deve trazer (ESTOQUE DE JANEIRO + vendas de fevereiro - Estoque de fevereiro) Se alguem me ajudar a resolver, agradeço imensamente. PS: ja usei union no sql, mas empaquei nas colunas com nomes diferentes
    quinta-feira, 31 de agosto de 2017 11:58

Todas as Respostas

  • Bom dia !

    Qual é a versão do SQL Server que irá usar ?

    Vc já importou tais planilhas para o SQL Server ?

    quinta-feira, 31 de agosto de 2017 12:56
  • 

    estou usando o Microsoft Query 14.0.7010.1000

    na verdade, eu preciso unir as duas tabelas (são dois arquivos diferentes) . com o Union , eu consegui mesclar as duas, mas somente trazendo as colunas com nome igual. Eu preciso criar um arquivo que consolide, onde vou trazer 4 colunas em comum.. e criar novas (visto que os campos de volume e valor são distintos para cada uma)

    
    quinta-feira, 31 de agosto de 2017 13:37
  • Pode me passar os nomes de cada coluna dos arquivos em excel ?
    quinta-feira, 31 de agosto de 2017 13:50
  • Arquivo ESTOQUE.XLS

    sheet (Base Geral)

    Colunas : (Tipo / Ano / Mês / Produto / Marca / Volume Estoque / Valor Estoque)

    Arquivo VENDAS.XLS

    sheet (Base Geral)

    Colunas: (Tipo / Ano / Mês / Produto / Marca / Volume Vendas / Valor Vendas)

    ***********************************************

    Na planilha que quero criar , deve ter as colunas

    (Tipo / Ano / Mês / Produto / Marca) e queria indexar as outras colunas de Volume e Valor para as duas bases, além de duas colunas adicionais... sendo assim, eu teria:

    (Tipo / Ano / Mês / Produto / Marca / Vol Estoque inicial / Vol Vendas / Vol Estoque Final / Saida Estoque / Valor Estoque Inicial / Valor Vendas / Valor Estoque Final / Saida Estoque (valor) )

    onde o Estoque inicial se refere ao mês anterior... e saída seria (estoque inicial + vendas - estoque final) 

    Não sei se ficou muito complicado a minha explicação =/

    quinta-feira, 31 de agosto de 2017 13:57
  • Não existe nenhum ID ou código único para identificar os produtos ?
    quinta-feira, 31 de agosto de 2017 16:54
  • não.... a intenção da terceira planilha é fazer o agrupamento... eu sei que se eu usar o union para unir as duas , eu mantenho apenas o registro único.... e se usar union all, eu mantenho todos os registros.... o problema é que eu não consigo levar colunas de nomes diferentes..... não entendo muito de SQL.. por isso queria alguma dica para unir as duas tabelas e conseguir criar as novas colunas, como mencionado na minha duvida

    obg

    quinta-feira, 31 de agosto de 2017 17:04
  • Consegue tirar um print ou mesmo o código SQL gerado Microsoft Query, quando você fez Union ?
    • Editado Edvaldo A quinta-feira, 31 de agosto de 2017 17:38 .
    quinta-feira, 31 de agosto de 2017 17:36
  • SELECT `Base$`.`Regional`, `Base$`.`Produto`, `Base$`.`Marca`, `Base$`.`Ano` , `Base$`.`Mês`

    FROM `\\brsp0001\\Base Geral Estoque.xlsx`.`Base$` `Base$`

    union all

    SELECT `Base$`.`Regional`, `Base$`.`Produto`, `Base$`.`Marca`, `Base$`.`Ano` , `Base$`.`Mês`

    from

    `\\brsp0001\Base Geral Vendas.xlsx`.`Base Geral$` `Base$`

    essa é a parte que fiz.. mas não é o que eu queria. nao consigo adicionar as colunas que não tem o mesmo nome.. e nao consigo criar colunas novas, pois nao faço a menor ideia

    quinta-feira, 31 de agosto de 2017 17:42
  • pelo que vi, no comando union eu preciso ter os nomes das colunas iguais né. se eu usar inner join, daria certo?
    quinta-feira, 31 de agosto de 2017 17:55
  • Sim, é que eu estou tentando fazer aqui.

    O ideal seria vc renomear / padronizar os nomes das planilhas, para ficar mais simples o entendimento para fazer o código

    quinta-feira, 31 de agosto de 2017 18:06
  • Seria + ou menos assim:

    SELECT Estoque.`Regional`, Estoque.`Produto`, Estoque.`Marca`, Estoque.`Ano` , Estoque.`Mês`, estoque.`Volume Estoque` ,vendas.`volume vendas`
    FROM `\\brsp0001\\Base Geral Estoque.xlsx`.`Base$``Base$` as Estoque inner join `\\brsp0001\Base Geral Vendas.xlsx`.`Base Geral$` `Base$` as Vendas
    		on `\\brsp0001\\Base Geral Estoque.xlsx`.`Base$` `Base$`.`Produto` = `\\brsp0001\Base Geral Vendas.xlsx`.`Base Geral$` `Base$`.`Produto`



    • Editado Edvaldo A quinta-feira, 31 de agosto de 2017 18:11 .
    quinta-feira, 31 de agosto de 2017 18:10
  • estou tentando aqui pra ver se consigo adequar algo.. de qualquer forma, obrigado
    quinta-feira, 31 de agosto de 2017 19:23
  • é.. não deu certo.. ate consegui fazer a conciliação usando right outer join e inner join... mas eu preciso de todas as linhas que são únicas para as duas tabelas... e quando altero para full outer join, não roda a consulta, pois dá erro....
    quinta-feira, 31 de agosto de 2017 20:40
  • post o seu código inner join .
    sexta-feira, 1 de setembro de 2017 11:32