Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bcs_ptx

comparar dias

Recommended Posts

veja minha dúvida, gostaria de fazer isso

 

quero simplesmente saber se o valor do dia anterior é maior ou menor que o do dia atual

 

como faria isso no mysql? tipo tenho os campos:

 

data_dia - que é a data de cada dia

total_dia - valor total do dia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que isto resolve

 

select t1.total_dia  , t2.total_dia 
from tabela t1,tabela t2
where t1.data_dia  = currdate
and   t2.data_dia  = SUBDATE(t1.data_dia, INTERVAL 1 DAY) 

 

Fonte

Compartilhar este post


Link para o post
Compartilhar em outros sites

é mais ou menos isso que eu quero

 

SELECT total_dia FROM tbl_teste_fat WHERE total_dia and data_dia = date(now()) -1 < total_dia and data_dia = date(now()) -2;

 

total_dia ontem = 15

total_dia antiiontem = 20

 

como eu faço para fazer um if agora?

 

if(total_dia ontem = 15 > total_dia antiiontem = 20){

echo 'em alta';

}else{

echo 'em baixa';

}

 

** nesse caso estaria em baixa

Compartilhar este post


Link para o post
Compartilhar em outros sites
select t1.data_dia , t1.total_dia  , t2.total_dia ,
      (case when t1.total_dia < t2.total_dia then 'em alta' 
            when t1.total_dia > t2.total_dia then 'em baixa' 
            else 'estavel' end) situacao
from tbl_teste_fat t1,tbl_teste_fat t2
where t1.data_dia  = currdate
and   t2.data_dia  = SUBDATE(t1.data_dia, INTERVAL 1 DAY)

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu o seguinte erro,

 

 

Error Code : 1054

Coluna 'curdate' desconhecida em 'where clause'

 

Execution Time : 00:00:00:000

Transfer Time : 00:00:00:000

Total Time : 00:00:00:000

 

 

cara eu tenho uma tabela só, nesse exemplo voce faz t1 e t2, por que?

 

select t1.data_dia , t1.total_dia  , t2.total_dia ,
      (case when t1.total_dia < t2.total_dia then 'em alta' 
            when t1.total_dia > t2.total_dia then 'em baixa' 
            else 'estavel' end) situacao
from tbl_teste_fat t1,tbl_teste_fat t2
where t1.data_dia  = curdate
and   t2.data_dia  = SUBDATE(t1.data_dia, INTERVAL 1 DAY);

Compartilhar este post


Link para o post
Compartilhar em outros sites

select t1.data_dia , t1.total_dia  , t2.total_dia ,
      (case when t1.total_dia < t2.total_dia then 'em alta' 
            when t1.total_dia > t2.total_dia then 'em baixa' 
            else 'estavel' end) situacao
from tbl_faturamento t1,tbl_faturamento t2
where t1.data_dia  = currdate
and   t2.data_dia  = SUBDATE(t1.data_dia, INTERVAL 1 DAY);

 

deu na mesma cara

 

 

Error Code : 1054

Coluna 'currdate' desconhecida em 'where clause'

 

Execution Time : 00:00:00:000

Transfer Time : 00:00:00:000

Total Time : 00:00:00:000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, pelo manual é CURDATE()

 

O problema é que não tenho MySql aqui ...

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

blza cara esta certo, mas como que eu passo isso para ler em minha pagina, fiz algo assim mas não da certo, e valeu pela ajuda ai.

 

       	<?php

			$seleciona = "SELECT t1.data_dia , t1.total_dia  , t2.total_dia ,
      (CASE WHEN t1.total_dia > t2.total_dia THEN 'em alta' 
            when t1.total_dia < t2.total_dia THEN 'em baixa' 
            ELSE 'estavel' END) situacao
FROM tbl_faturamento t1,tbl_faturamento t2
WHERE t1.data_dia  = CURDATE()
AND   t2.data_dia  = DATE_ADD(t1.data_dia, INTERVAL -1 DAY)";

			$query_total = mysql_query($seleciona);

			while($dados = mysql_fetch_assoc($query_total)){

				echo $dados['em alta'];

			}

		?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Php não conheço, se ver na rua nem cumprimento ...

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza cara eu consegui, mas tipo, como que eu faço para evitar os sabados e domingos? tipo

 

hoje segunda dia 26, no meu script eu pego os valores de ontem e anteontem, que ai seria domingo e sabado, como não existe essas datas, teria que pegar de sexta e quinta, como que eu comparo ai?

 

segue meu script correto agora, comparando o dia 25 e 24.

 

           <?php

			$seleciona = "
			SELECT
				t1.data_dia , t1.total_dia  , t2.total_dia ,
			(
			CASE WHEN
				t1.total_dia > t2.total_dia
			THEN
				'em alta' 
			WHEN
				t1.total_dia < t2.total_dia
			THEN
				'em baixa' 
			ELSE
				'estavel'
			END
			)
				situacao
			FROM
				tbl_faturamento t1,tbl_faturamento t2
			WHERE
				t1.data_dia  = CURDATE() -1
			AND
				t2.data_dia  = DATE_ADD(t1.data_dia, INTERVAL -1 DAY)";

			$query_total = mysql_query($seleciona);

				while($dados = mysql_fetch_assoc($query_total)){

					if($dados['situacao'] == 'em alta'){

						echo "<img src='../img/icon_positivo.png' title='Em Alta' />";

					}else if($dados['situacao'] == 'em baixa'){

						echo "<img src='../img/icon_negativo.png' title='Em Baixa' />";

					}

				}

		?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No #2 passei o link do manual, existem várias funções para manipular datas, uma delas DAYOFWEEK() retorna o dia da semana, junto a um CASE ou If dá para manipular o que se deseja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.