-
Conteúdo Similar
-
Por Felipe Guedes Coutinho
Galera, venho contribuindo com diversas dúvidas, mas hoje quem está com uma dúvida sou eu.
Cenário - Gerar Dados para Relatório de Faturamento.
Objetivo - Obter os valores totais das tabelas de Compra, Venda e Despesa agrupados por mês através de SUM dentro do "periodo" passado pela tela de consulta do relatório.
Problema - Não existe um relacionamento entre as tabelas e eu preciso obter os resultados por 1 (UM) único select pois a cada registro lido com os valores totalizados e agrupados por mês eu movimento para um array onde o resultado do array é movimentado para um Chart do Google que gera um gráfico.
Insumos:
Tabela compra
RESULTADO SEPARADO DA TABELA COMPRA
SELECT sum(vlr_pago),
CASE extract(MONTH from dt_registro_compra)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Março'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
WHEN 12 THEN 'Dezembro'
END AS mes
FROM db_pescado_gelo.sqltb_compra
WHERE dt_registro_compra between '2019-01-01' and '2019-12-31'
group by mes
order by dt_registro_compra asc
RESULTADO:
Tabela Venda
RESULTADO SEPARADO DA TABELA VENDA
SELECT sum(vlr_vale),
CASE extract(MONTH from dt_registro_venda)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Março'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
WHEN 12 THEN 'Dezembro'
END AS mes
FROM db_pescado_gelo.sqltb_venda
WHERE dt_registro_venda between '2019-01-01' and '2019-12-31'
group by mes
order by dt_registro_venda asc
RESULTADO:
Tabela Despesa
Sei que devo colocar dt_pagamento is not null
RESULTADO SEPARADO DA TABELA DESPESA
SELECT sum(vlr_pago),
CASE extract(MONTH from dt_pagamento)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Março'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
WHEN 12 THEN 'Dezembro'
END AS mes
FROM db_pescado_gelo.sqltb_despesa
WHERE dt_pagamento between '2019-01-01' and '2019-12-31'
AND dt_pagamento is not null
group by mes
order by dt_pagamento asc
RESULTADO:
O resultado que eu gostaria é algo parecido com isso:
TABELA DE VENDA TABELA DE COMPRA TABELA DE DESPESA - - R$ 31.272,55 Julho - - Agosto R$ 3.796,53 R$ 20.687,20 Agosto R$ 3.796,53 Agosto
Esse resultado eu "preciso" que seja através do retorno do um único SELECT, se alguém puder me ajudar, ficarei muito agradecido.
Se puderem dar uma forã agradeço @Motta ; @Omar~ ; @Maujor ; @gabrielms
Att.
Felipe Coutinho
-
Por Ygor Guedes
Boa tarde meu pessoal. Preciso da ajuda de vocês em uma consulta baseada em Inner Join + Group By. Irei deixar as tabelas e a consulta que eu tenho, para melhor visualização:
Consulta:
SELECT tab_garagens.onibus_ponto, tab_garagens.onibus_prefixo, data FROM pontos INNER JOIN tab_garagens ON pontos.onibus_ponto = tab_garagens.onibus_ponto Tabela pontos:
| onibus_ponto | data |
| 10 | 2019-06-03 12:00:00 |
| 10 | 2019-06-03 12:10:00 |
| 44 | 2019-06-03 12:00:00 |
Tabela tab_garagens:
| onibus_ponto | onibus_prefixo |
| 10 | DE700 |
| 44 | GL030 |
A minha consulta está trazendo a informação mais antiga da data; o que eu preciso é tipo um ORDER BY com data mais recente, onde eu pego a data mais atual do registro agrupado na coluna 'onibus_ponto'.
Eu gostaria que saísse assim:
| onibus_ponto | onibus_prefixo | data |
| 10 | DE700 | 2019-06-03 12:10:00 |
| 44 | GL030 | 2019-06-03 12:00:00 |
Se puderem me ajudar, fico agradecido
-
Por brunoogm
Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
26 46 15/05/2019 13:57:25 Dinheiro Pendente Bacon Cheddar 1 60.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Chicken Club Sandwich 1 45.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Philly Cheese Steak 1 50.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Smoke House 1 55.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Stream Miller 1 35.00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bacon Cheddar 1 60.00
Chicken Club Sandwich 1 45.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Philly Cheese Steak 1 50.00
Smoke House 1 55.00
Stream Miller 1 35.00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Alguem pode me ajudar, qual seria a melhor forma de fazer ?
Essa tabela é gerada com um while no php entao se alguem saber uma outra maneira de montar isso aceito dicas.
php:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
echo "<tr role='row' class='odd'>";
echo "<td class='sorting_1'>" .$resultado['CodigoComanda']. "</td>";
echo "<td>" .$resultado['Nome']."</td>";
echo "<td>" .$resultado['Quantidade']."</td>";
echo "<td>" .$resultado['Preco']."</td>";
echo "<td>" .$resultado['Metodos']."</td>";
echo "<td>" .$resultado['DataPedido']."</td>";
echo "<td>" .$resultado['Situacao']."</td>";
echo "</tr>";
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
vlw pessoal
-
Por brunoogm
Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
26 46 15/05/2019 13:57:25 Dinheiro Pendente Bacon Cheddar 160.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Chicken Club Sandwich 145.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Philly Cheese Steak 150.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Smoke House 155.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Stream Miller 135.00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
46 15/05/2019 13:57:25 Dinheiro Pendente Bacon Cheddar 160.00
Chicken Club Sandwich 145.00
Philly Cheese Steak 150.00
Smoke House 155.00
26 46 15/05/2019 13:57:25 Dinheiro Pendente Stream Miller 135.00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
Por Anderson Campos da Silva
Olá,
Estou com um problema, que para alguns pode ser simples, é o seguinte:
Tenho 2 tabela relacionadas, MODELO e EQUIPAMENTO
TABELA MODELO
idModelo (INT) - chave primária
txModelo (VARCHAR)
TABELA EQUIPAMENTO
idEquipamento (INT) - chave primária
patrimonio (VARCHAR)
situacao (VARCHAR)
idModelo (INT) - Chave estrangeira
O campo situação pode ser preenchido apenas apenas com PRODUÇÃO OU ESTOQUE.
Enfim, preciso de um SELECT que retorne as seguintes colunas txModelo, quantidade de equipamentos por modelo, quantidade de equipamentos com PRODUÇÃO, e quantidade de equipamentos com ESTOQUE, exemplo:
txModelo | total | produção | estoque
CISCO 7 4 3
HP 15 10 5
DELL 10 2 8
Desde já agradeço
-