sacseixas Postado Abril 5, 2011 Denunciar Share Postado Abril 5, 2011 Eu tenho essas dois select que já funcionam, porem gostaria de saber se tem como fazer uma consulta só.O resultado esta sendo impresso em duas tabelas diferente.Uma totalizando as vendas e outra dando o percentual referente a essas vendas. Abaixo as querys e as tabelasstrVendasListar = "SELECT LOJ.dsLOja, ORC.dsCategoria, sum(ORC.vlTotal) AS Total "&_ "FROM orcamento ORC , Loja LOJ "&_ "where ORC.idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico UOH "&_ "WHERE UOH.dsHistorico LIKE '"& dsMsg &"%' "&_ "AND UOH.dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)) "&_ "AND ORC.idLoja = '"&idLoja&"' " &_ "AND ORC.idLoja = LOJ.idLoja " &_ "AND ORC.idSituacao <> 14 "&_ "AND ORC.idSituacao <> 3 "&_ "GROUP BY LOJ.dsLOja, ORC.dsCategoria "&_ "Order by LOJ.dsLOja"strPercentualVendasListar = "SELECT LOJ.dsLOja, ORC.dsCategoria, sum(ORC.vlTotal) AS Valor, "&_ "(sum(vlTotal)/(SELECT sum(vlTotal) AS Total FROM orcamento "&_ "where idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico WHERE dsHistorico LIKE '"& dsMsg &"%' "&_ "AND dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)))) AS Porcentagem "&_ "FROM orcamento ORC , Loja LOJ "&_ "where ORC.idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico UOH "&_ "WHERE UOH.dsHistorico LIKE '"& dsMsg &"%' "&_ "AND UOH.dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)) "&_ "AND ORC.idLoja = '"&idLoja&"' " &_ "AND ORC.idLoja = LOJ.idLoja " &_ "AND ORC.idSituacao <> 14 "&_ "AND ORC.idSituacao <> 3 "&_ "GROUP BY LOJ.dsLOja, ORC.dsCategoria "&_ "Order by LOJ.dsLOja"HOje o resultado sai assim:Primeira query retorna essa tabela abaixoProduto Total Cortina R$ 7.426,88 Estofado R$ 154,12 Persiana2 R$ 2.036,16 TOTAL GERAL R$ 9.617,16 Segunda query retorna essa tabela abaixo usando o valor do total geralProduto Valor Percentual de venda Cortina R$ 7.426,88 0,77% Estofado R$ 154,12 0,02% Persiana2 R$ 2.036,16 0,21% O que eu quero esta aqui abaixo:Totalizar e realizar o calculo na mesma queryProduto Valor Percentual de venda Cortina R$ 7.426,88 0,77% Estofado R$ 154,12 0,02% Persiana2 R$ 2.036,16 0,21% TOTAL GERAL R$ 9.617,16 Desde já agradeço a atençãoObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Faria Postado Abril 5, 2011 Denunciar Share Postado Abril 5, 2011 (editado) Boa Tarde Pelo que eu entedir da para fazer da seguinte forma:SELECT PERC.IDLOJA, PERC.dsLOja, PERC.dsCategoria, sum(PERC.vlTotal) AS Valor, (sum(PERC.vlTotal)/(SELECT sum(PERC.vlTotal) AS Total , sum(PERC.vlTotal) AS Total FROM orcamento ORC INNER JOIN Loja LOJ ON ORC.idLoja = LOJ.idLoja INNER JOIN ( SELECT ORC.IDLOJA, LOJ.dsLOja, ORC.dsCategoria, sum(ORC.vlTotal) AS Valor, (sum(vlTotal)/(SELECT sum(vlTotal) AS Total FROM orcamento where idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico WHERE dsHistorico LIKE '"& dsMsg &"%' AND dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)))) AS Porcentagem FROM orcamento ORC , Loja LOJ where ORC.idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico UOH WHERE UOH.dsHistorico LIKE '"& dsMsg &"%' AND UOH.dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)) AND ORC.idLoja = '"&idLoja&"' AND ORC.idLoja = LOJ.idLoja AND ORC.idSituacao <> 14 AND ORC.idSituacao <> 3 GROUP BY LOJ.dsLOja, ORC.dsCategoria Order by LOJ.dsLOja ) PERC ON PERC.IDLOJA = ORC.idLoja where ORC.idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico UOH WHERE UOH.dsHistorico LIKE '& dsMsg &%' AND UOH.dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)) AND ORC.idLoja = '&idLoja&' AND ORC.idSituacao <> 14 AND ORC.idSituacao <> 3 GROUP BY LOJ.dsLOja, ORC.dsCategoria Order by LOJ.dsLOjaNão tive como testa por que não tenho um ambiente como o seu mas se tiver alguma duvida é so falar. Espero poder ter ajudado. Editado Abril 7, 2011 por Bruno Faria Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
sacseixas
Eu tenho essas dois select que já funcionam, porem gostaria de saber se tem como fazer uma consulta só.
O resultado esta sendo impresso em duas tabelas diferente.
Uma totalizando as vendas e outra dando o percentual referente a essas vendas. Abaixo as querys e as tabelas
strVendasListar = "SELECT LOJ.dsLOja, ORC.dsCategoria, sum(ORC.vlTotal) AS Total "&_
"FROM orcamento ORC , Loja LOJ "&_
"where ORC.idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico UOH "&_
"WHERE UOH.dsHistorico LIKE '"& dsMsg &"%' "&_
"AND UOH.dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)) "&_
"AND ORC.idLoja = '"&idLoja&"' " &_
"AND ORC.idLoja = LOJ.idLoja " &_
"AND ORC.idSituacao <> 14 "&_
"AND ORC.idSituacao <> 3 "&_
"GROUP BY LOJ.dsLOja, ORC.dsCategoria "&_
"Order by LOJ.dsLOja"
strPercentualVendasListar = "SELECT LOJ.dsLOja, ORC.dsCategoria, sum(ORC.vlTotal) AS Valor, "&_
"(sum(vlTotal)/(SELECT sum(vlTotal) AS Total FROM orcamento "&_
"where idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico WHERE dsHistorico LIKE '"& dsMsg &"%' "&_
"AND dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)))) AS Porcentagem "&_
"FROM orcamento ORC , Loja LOJ "&_
"where ORC.idOrcamento in(SELECT idOrcamento FROM usuarioOrcamentoHistorico UOH "&_
"WHERE UOH.dsHistorico LIKE '"& dsMsg &"%' "&_
"AND UOH.dtData Between convert(smalldatetime, '"&dataInicial&"',103) AND convert(smalldatetime, '"&dataFinal&"',103)) "&_
"AND ORC.idLoja = '"&idLoja&"' " &_
"AND ORC.idLoja = LOJ.idLoja " &_
"AND ORC.idSituacao <> 14 "&_
"AND ORC.idSituacao <> 3 "&_
"GROUP BY LOJ.dsLOja, ORC.dsCategoria "&_
"Order by LOJ.dsLOja"
HOje o resultado sai assim:
Primeira query retorna essa tabela abaixo
Produto Total
Cortina R$ 7.426,88
Estofado R$ 154,12
Persiana2 R$ 2.036,16
TOTAL GERAL R$ 9.617,16
Segunda query retorna essa tabela abaixo usando o valor do total geral
Produto Valor Percentual de venda
Cortina R$ 7.426,88 0,77%
Estofado R$ 154,12 0,02%
Persiana2 R$ 2.036,16 0,21%
O que eu quero esta aqui abaixo:
Totalizar e realizar o calculo na mesma query
Produto Valor Percentual de venda
Cortina R$ 7.426,88 0,77%
Estofado R$ 154,12 0,02%
Persiana2 R$ 2.036,16 0,21%
TOTAL GERAL R$ 9.617,16
Desde já agradeço a atenção
Obrigado
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.