Ir para conteúdo
Fórum Script Brasil
  • 0

Count + Group - Duvidas


WilliamScriptBrasil

Pergunta

Hello crazy people !

Estou com uma duvida neste meu inicio com o mysql.

Tenho uma tabela onde preciso saber quantas ocorrencias de um certo evento aconteceram em um dia.

Para isto estou dando um select na ocorrencia e agrupando pela data.

Acontece que o campo data inclui data/hora e sendo assim, datas iguais tem horarios diferentes e não agrupam.

Como consigo dar um "cut" somente nos caracteres que eu quero ou seja, na data e conseguir contar e agrupar com sucesso?

Vejam a sintaxe, o exemplo de dados que retorna.

Obrigado !!!

William.

SELECT `date_p` , COUNT( * ) FROM `orders` WHERE

`orders_status` = "3" GROUP BY `date_p`

E ele me retorna o seguinte valor por exemplo:

date_p COUNT(*)

2003-12-10 00:12:47 1

2003-12-11 09:14:07 1

2003-12-11 16:58:08 1

As duas ultimas ocorrencias são da mesma data e sendo assim, preciso agrupa-las, desconsiderando o horario.

já tentei algo com o date(expr) mas não deu resultado, talvez eu tenha errado a sintaxe.

Valeu.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Como consigo dar um "cut" somente nos caracteres que eu quero ou seja, na data e conseguir contar e agrupar com sucesso?

se você puder separar a data da hora ficaria melhor....

E ele me retorna o seguinte valor por exemplo:

date_p COUNT(*)

2003-12-10 00:12:47 1

2003-12-11 09:14:07 1

2003-12-11 16:58:08 1

não entendi pelo que você falou esta certo wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

oi guilherme...

sim, o resultado que retorna desta query está correto.

o problema é que não é isto que eu preciso.

eu preciso apenas do valor data: 2003-12-10

como eu consigo "corta-lo" do campo data hora na query?

ex:

2003-12-10 1

2003-12-11 1

2003-12-11 1

valeu.

EDITANDO

-----------

Consegui pegar o que preciso (No MyAdmin)

So que agora não consigo ler o resultado no php.

Estou setando o sql, mas não consigo pegar o resultado... como faco?

$sql = "SELECT COUNT(date_p) FROM tabela.orders WHERE orders_status = '3' AND LEFT(date_p,10) = "2003-12-11" GROUP BY LEFT(date_p,10)";

$res = mysql_query($sql);

e o que mais?

Preciso deste valor (numero de ocorrencias) para mostrar na tela.

..

-----

Não poste duas vezes seguidas no mesmo topicos, use o botão Editar

Editado por Guilherme014
Link para o comentário
Compartilhar em outros sites

  • 0

Ola Guilherme.

Deixa eu explicar então o que estou fazendo:

Tenho uma aplicacao que contabiliza as visitas de meu site e estou

incluindo uma nova informacao

nela (que esta obviamente em outra tabela) que é "Quantas vendas

fiz naquela data" , para que eu possa saber o numero de visitas

(versus) o numero de vendas realizadas.

Para montar o calendario o script original utiliza o seguinte codigo :

for ($j = 0; $j < 31; $j++) {

if ($j < $cnt_cache) {

$day = date("D", mktime(12,0,0,$Month, $j+1, $Year));

$td_color = (($day == "Sat")

|| ($day == "Sun")) ? "ref" : "color2";

$buffer .= "<td class=\"$td_color\" align=\"center\">";

// values for logs-by-day in dspLogs.php

$from_y = $Year; $from_m = $Month; $from_d = $j+1;

$to_y = $from_y; $to_m =

$from_m; $to_d = $from_d;

$val = $cache[$j];

/////////////// ALTERACOES

$datavenda = "$from_y-$from_m-$from_d";

$sql = "SELECT COUNT(date_p) FROM tabela1.orders WHERE orders_status = '3'

AND LEFT(date_p,10) = $datavenda GROUP BY LEFT(date_p,10)";

$res = mysql_query($sql);

$pvenda = $res["date_p"]; $buffer .= ($val == 0) ? "&nbsp;" : "<a href=\"".INC_COOKIES."?action=datevisits&from_y=$from_y&

from_m=$from_m&from_d=$from_d&to_y=$from_y&to_m=$from_m&to_d=

$from_d\">$val</a>$pvenda";

Note que estou "apenas lendo" outra tabela e quero pegar o resultado dela

para imprimir em $pvenda na ultima linha.

Obrigado,

William.

Editado por Guilherme014
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...