Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde Srs.
Estou com uma dificuldade pois preciso montar visões com 2 tabelas onde em cada uma há campos de datas em formatos diferentes.
A tabela 1 guarda dados de entrada de mercadoria:
Empresa | Produto | Fornecedor | Data de Recebimento | Peso |
---|---|---|---|---|
Matriz | Produto1 | Fornecedor1 | 14/12/2016 | 15000 |
Matriz | Produto1 | Fornecedor2 | 15/12/2016 | 12000 |
E uma segunda tabela onde é registrado a cota que foi passada para cada fornecedor no mês:
Empresa | Produto | Fornecedor | Ano | Mês | Quota Mensal |
---|---|---|---|---|---|
Matriz | Produto1 | Fornecedor1 | 2015 | 12 | 40000 |
Matriz | Produto1 | Fornecedor1 | 2016 | 12 | 35000 |
Matriz | Produto1 | Fornecedor2 | 2016 | 12 | 20000 |
Matriz | Produto2 | Fornecedor2 | 2016 | 11 | 50000 |
Preciso colocar no gráfico(de barras e linhas por exemplo) a comparação mês a mês de 1 fornecedor mostrando a soma que ele me enviou e do lado a quota daquele mesmo mês, juntamente com a porcentagem do que ele entregou sendo mostrado na linha.
A parte gráfica não terei dificuldades, meu problema é comparar as duas datas da forma que estão, a associação é feita pelos 3 primeiros campos, mas com ano e mês separados está dificultando.
Boa tarde,
Faria assim :
LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& Ano &'.'& Mês as PK_MERCADORIA,
Ano,
Mês,
[Quota Mensal]
FROM
(ooxml, embedded labels, table is [Cota Mes]);
left join
LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_MERCADORIA,
Empresa,
Produto,
Fornecedor,
num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as DimensaoMes,
num(year(date([Data de Recebimento],'DD/MM/YYYY'))) as DimensaoAno,
date([Data de Recebimento],'DD/MM/YYYY') as Data,
num(Peso,'#######.###') as Peso
FROM
(ooxml, embedded labels, table is [Entrada Mercadoria]);
Segue o QVW.
Boa tarde,
Faria assim :
LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& Ano &'.'& Mês as PK_MERCADORIA,
Ano,
Mês,
[Quota Mensal]
FROM
(ooxml, embedded labels, table is [Cota Mes]);
left join
LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_MERCADORIA,
Empresa,
Produto,
Fornecedor,
num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as DimensaoMes,
num(year(date([Data de Recebimento],'DD/MM/YYYY'))) as DimensaoAno,
date([Data de Recebimento],'DD/MM/YYYY') as Data,
num(Peso,'#######.###') as Peso
FROM
(ooxml, embedded labels, table is [Entrada Mercadoria]);
Segue o QVW.
Bom dia Maicon,
Funcionou parcialmente dessa forma que me passou.
Não entendi o motivo, mas por exemplo, de 2016 não preencheu com os valores das quotas, e há esses valores na tabela original. Alguns de 2015 também não.
Essa expressão year(date([Data de Recebimento],'DD/MM/YYYY') pega o ano da minha data de recebimento no caso, e esta num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') o mês? Ou entendi errado?
Ola @Thiago Ramos isso mesmo, expressão pego ano e mês , pelo motivo que na cota você tem somente o ano e mês.
Ele mostra sim, cria no segundo bloco esse campo.
Ano&'-'& Mês as Periodo, ai joga na dimensão e retira o mês.
O que acontece, como a dimensão esta mês, ou seja dezembro de 2015 e dezembro 2016, ele agrupa.
Agora se criar o campo periodo, com ano e mês, ele separa.
Veja na imagem.
Acho que consegui descobrir o motivo Maicon,
O problema é que na tabela de exemplo que te passei, só coloquei meses 11 e 12.
O problema que está acontecendo aqui é porque na tabela1 que tem a data o formato está DD/MM/YYYY
Mas na segunda tabela, os primeiros meses, até setembro estão como 1, 2, 3, etc. Não tenho certeza se é isso, mas se estivesse como 01, 02, 03... Talvez funcionaria.
Já que os meses 10,11 e 12 estão aparecendo.
Ahhh entendi , você fez com uma massa de dados maior.
Então aonde tem o campo mês faça assim :
num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') , formato ele em duas casas e terá o comportamento certo. O que tiver como 1,2,3 passara a ter 01,02,03 ...
Espero ter ajudado.
Ou num(mes,'00') as Mes
Fiz dessa segunda forma, obrigado.