..:: MX Studio Fóruns ::..: Como usar a função SUM Filtrando dados do MySQL? - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como usar a função SUM Filtrando dados do MySQL?

#1 User is offline   novato_cf 

  • Group: Membros
  • Posts: 35
  • Joined: 01-June 05

  Posted 20 November 2005 - 04:13 AM

smile.gif Bom Dia Galera!!!!!, ou Melhor Bons sonhos Galera smile.gif
Pq talvez a maioria devem está dormindo...
Ou curtindo as Baladas!!!! smile.gif

E o seguinte galera, to com um problema!!!!

Estou sabendo que a função SUM do MySQL soma os valores de uma coluna, mais so que eu queria usar uma cláusula where

Exemplo básico de como usar a função SUM:
QUOTE
SELECT SUM(NOME_DA_COLUNA) AS TOTAL FROM NOME_DA_TABELA


Estou usando dessa forma
ColdFusion
<cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT MAX(ID_PEDIDO) AS CODIGO FROM TB_PEDIDOS
</cfquery>

<cfset variables.UltimoPedido= qrPegaUltimo.ID_PEDIDO>
<cfquery name="qrSoma" datasource="#VARIABLES.DSN#">
SELECT SUM(VALOR) AS TOTAL FROM TB_PEDIDOS
WHERE ID_PEDIDO="#variables.UltimoPedido#"
</cfquery>


Já tentei usar a cláusula WHERE mais não funciona, ocorre um erro

Só que eu gostaria de usar a cláusula Where ou algo parecido!!

Por exemplo tenho uma tabela chamada TB_PEDIDOS com os seguintes dados.

QUOTE
ID  ID_PEDIDO  ID_PRODUTO    VALOR
1      228                    30                60
2      228                    16                180
3      229                    84                100
4      230                    1                  20
5      230                    51                80


Eu queria filtrar os dados pelo ID_PEDIDO, Como vcs estão notando ai tem o pedido "ID_PEDIDO" de número 230 e que são dois produtos "ID_PRODUTO" de número 1 e 51 e valores 20 e outro 80.
Como ja tinha comentado antes eu queria filtra usando isso de exemplo pra somar esses dois valores 20 e 80.
Antes de qualquer coisa isso que estou usando e um formulário simples de pedido onde o internauta pode fazer o pedido sem precisar se cadastrar no site ou até mesmo tenha que está logado no site!, como podem perceber não tem nenhuma variável de sessão ou algo parecido pra ta somando essas variáveis, aqui e uma coisa bem simples pra resolver um caso de urgência mesmo.

Alguem aqui sabe se existe um meio de filtrar usando a Função SUM, ou outra que seja do MySQL?
Se alguem souber e poder deixa aqui sua dica, ficarei muuito feliz e agradecido.
E tb se tiver algum erro aqui no post me perdoem e pq estou tentando manter os olhos abertos, pq to com muuito sono! smile.gif
Bom galera, já ta tarde, e tb já passou da hora da criança ir dormi. smile.gif
Bom Dia pra todos.
Fui............ zZzZzZzZz
0

#2 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 22 November 2005 - 01:19 AM

Demoro né.., só vi agora


Agrupa isso ai veio.
CODE
<cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT
         SUM(VALOR) AS VALORES,
         ID_PEDIDO
FROM
        tb_pedidos
GROUP BY
        ID_PEDIDO
</cfquery>



E pra filtrar agrupado usa o HAVING
CODE
<cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT
          SUM(VALOR) AS VALORES,
          ID_PEDIDO
FROM
           tb_pedidos
GROUP BY
            ID_PEDIDO
HAVING
             ID_PEDIDO = (
                                     SELECT
                                          MAX(ID_PEDIDO) AS pid
                                     FROM
                                           tb_pedidos
                                      );
</cfquery>



Dai fica facim.
CODE
<cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT
            SUM(VALOR) AS VALORES,
             ID_PEDIDO
FROM
             tb_pedidos
GROUP BY
             ID_PEDIDO
HAVING
             ID_PEDIDO = 230;
</cfquery>

0

#3 User is offline   novato_cf 

  • Group: Membros
  • Posts: 35
  • Joined: 01-June 05

Posted 23 November 2005 - 12:33 AM

thumbup.gif Blz pcsilva!!!
Cara vc e D+!!!

Testei aqui, funcionou blz!!!
Obrigado pcsilva!!!

Agradeço por vc ta sempre ajudando agente aqui, e compartilhando seu conhecimento conosco!!!
Obrigado mais um vez. thumbup.gif
0

#4 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 23 November 2005 - 12:51 AM

Olha o que ainda tenho que aprender

user posted image
Clique na imagem para ampliá-la
0

#5 User is offline   Luiz Kim 

  • Group: Membros
  • Posts: 2
  • Joined: 23-March 11

Posted 23 March 2011 - 08:32 AM

View Postpcsilva, on 22 November 2005 - 01:19 AM, said:

Demoro né.., só vi agora


Agrupa isso ai veio.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--><cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT
         SUM(VALOR) AS VALORES,
         ID_PEDIDO
FROM
        tb_pedidos
GROUP BY
        ID_PEDIDO
</cfquery><!--c2--></div><!--ec2-->


E pra filtrar agrupado usa o HAVING
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--><cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT
          SUM(VALOR) AS VALORES,
          ID_PEDIDO
FROM
           tb_pedidos
GROUP BY
            ID_PEDIDO
HAVING
             ID_PEDIDO = (
                                     SELECT
                                          MAX(ID_PEDIDO) AS pid
                                     FROM
                                           tb_pedidos
                                      );
</cfquery><!--c2--></div><!--ec2-->


Dai fica facim.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--><cfquery name="qrPegaUltimo" datasource="#VARIABLES.DSN#">
SELECT
            SUM(VALOR) AS VALORES,
             ID_PEDIDO
FROM
             tb_pedidos
GROUP BY
             ID_PEDIDO
HAVING
             ID_PEDIDO = 230;
</cfquery><!--c2--></div><!--ec2-->



Bateu na trave!!!!

Estou com um problema parecido, mas no meu caso preciso somar valores que estejam entre um determinado período:


SELECT SUM(valor) AS total FROM financeiro_despesas WHERE pago='0' GROUP BY vencimento HAVING vencimento <= '2011-03-23' ORDER BY vencimento

Com BETWEEN também não resolveu. Dos dois modos, ele agrupa o total de cada dia em uma linha, ao invés de mostrar o total do período:

Exemplo:
===================
total
35.69
50.88
===================

Deveria retornar:
===================
total
61.13
===================

Alguém tem uma Luz???
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
New Replies Como lidar?
Franquias
Publicidade e Propaganda Murilo 
  • 5 Replies
  • 1094 Views
New Replies Saiba como usar o Easy Cleaner Notícias Notícias 
  • 0 Replies
  • 895 Views
New Replies trabalho em lote via AS
tem como fazer?
Flash & ActionScript coiote 
  • 3 Replies
  • 893 Views
New Replies Painel de avisos com TXT
Como buscar o aviso num txt???
Flash & ActionScript kidh0 
  • 3 Replies
  • 1001 Views
New Replies Receber dados de FORMULÁRIOS
Após tentar tudo que é tutorial, vem o desespero!
Dreamweaver Ronne Clay 
  • 1 Reply
  • 898 Views
New Replies formatar txt ext. sem usar CSS
no flash
Flash & ActionScript bigcarva 
  • 3 Replies
  • 2027 Views
No New Replies Carregar swfs externos
Como carregar swfs externos em um mc
Tutoriais e Artigos edersong 
  • 1 Reply
  • 1312 Views
New Replies Como crio um game estilo mario? Desenvolvimento de Jogos Tutuk 
  • 2 Replies
  • 1497 Views

Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)