Autor Tópico: [RESOLVIDO] Usar um campo tipo data como parte da cláusula sql - Formulário  (Lida 267 vezes)

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Estou com um problema que não consigo encontrar a solução, preciso saber o total de uma coluna, mas o filtro inicial será uma data pertencente a um campo {data}(somente data também nas tabelas), mas não esta funcionando:

Código: [Selecionar]
//Soma o total no banco
sc_lookup(dataset, "SELECT sum(total)
FROM oslojadetalhe
WHERE (data_os = '{data}') AND status_laboratorio != 0 AND tipo_mercadoria = 1");


$valorDs = {dataset[0][0]};
//Converter valor em float
$valor_base = floatval ($valorDs);

if(!empty ($valor_base))

{
$valor = $valor_base;
} else {
$valor = 0;

}

{copia} = $valor;
« Última modificação: Julho 08, 2016, 04:47:27 pm por Ronyan Alves »

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #1 Online: Julho 08, 2016, 10:04:38 am »
Joelton,

Perguntas:

1 - Qual o erro que está dando?
2 - Qual o banco de dados utilizado?
3 - Por que usar o floatval()?
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #2 Online: Julho 08, 2016, 11:21:10 am »
Joelton,

Perguntas:

1 - Qual o erro que está dando?
2 - Qual o banco de dados utilizado?
3 - Por que usar o floatval()?

Olá amigo Kleyber! Segue respostas:
1 - Não gera nenhum erro, na verdade que ele não está usando o campo '{data}' como parte da cláusula WHERE, logo não recupera o valor para '{copia}';
2 - Mysql;
3 - Pois em outros projetos tive a infelicidade de não pegar direito o valor fracionado, daí criei minha rotina de sempre usar para não ter estas prerrogativas...

Jailton

  • Expert
  • *****
  • Mensagens: 2031
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #3 Online: Julho 08, 2016, 11:30:16 am »
Testa se esta gerando a SQL corretamente.

$sql="SELECT sum(total) FROM oslojadetalhe WHERE data_os = '{data}' AND status_laboratorio > 0 AND tipo_mercadoria = 1";

echo 'SQL = '.$sql."<BR>";

break;
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #4 Online: Julho 08, 2016, 11:48:46 am »
Testa se esta gerando a SQL corretamente.

$sql="SELECT sum(total) FROM oslojadetalhe WHERE data_os = '{data}' AND status_laboratorio > 0 AND tipo_mercadoria = 1";

echo 'SQL = '.$sql."<BR>";

break;

Ele não retorna a data do campo...

SQL = SELECT sum(total) FROM oslojadetalhe WHERE data_os = '' AND status_laboratorio > 0 AND tipo_mercadoria = 1

Jailton

  • Expert
  • *****
  • Mensagens: 2031
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #5 Online: Julho 08, 2016, 12:13:29 pm »
Testa se esta gerando a SQL corretamente.

$sql="SELECT sum(total) FROM oslojadetalhe WHERE data_os = '{data}' AND status_laboratorio > 0 AND tipo_mercadoria = 1";

echo 'SQL = '.$sql."<BR>";

break;

Ele não retorna a data do campo...

SQL = SELECT sum(total) FROM oslojadetalhe WHERE data_os = '' AND status_laboratorio > 0 AND tipo_mercadoria = 1

Bom agora já sabemos que ele não tá pegando, a data, veja se no formulário é {Data} mesmo se existe.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #6 Online: Julho 08, 2016, 01:47:02 pm »
Testa se esta gerando a SQL corretamente.

$sql="SELECT sum(total) FROM oslojadetalhe WHERE data_os = '{data}' AND status_laboratorio > 0 AND tipo_mercadoria = 1";

echo 'SQL = '.$sql."<BR>";

break;

Ele não retorna a data do campo...

SQL = SELECT sum(total) FROM oslojadetalhe WHERE data_os = '' AND status_laboratorio > 0 AND tipo_mercadoria = 1

Bom agora já sabemos que ele não tá pegando, a data, veja se no formulário é {Data} mesmo se existe.

Está sim... veja...

Tipo HTML       TEXT       Objeto HTML usado para exibir o campo no formulário.

Tipo SQL       DATE       Tipo do campo no banco de dados.

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #7 Online: Julho 08, 2016, 02:28:11 pm »
O lance é o conteúdo do campo {data} que não está tendo nada... esse campo é alimentado por algum código?
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #8 Online: Julho 08, 2016, 03:01:23 pm »
O lance é o conteúdo do campo {data} que não está tendo nada... esse campo é alimentado por algum código?

Fiz uma classe valorCopia() e coloquei o código em questão, sendo que fiz um onChange no campo data, ao escolher a data a classe deveria executar...
Código:
//Soma o total no banco
sc_lookup(dataset, "SELECT sum(total)
               FROM oslojadetalhe
               WHERE (data_os = '{data}') AND status_laboratorio != 0 AND tipo_mercadoria = 1");
               

$valorDs = {dataset[0][0]};
//Converter valor em float
$valor_base = floatval ($valorDs);

if(!empty ($valor_base))
   
   {
      $valor = $valor_base;
   } else {
            $valor = 0;
            
         }

{copia} = $valor;

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #9 Online: Julho 08, 2016, 03:08:54 pm »
Comente esse código e coloque apenas:

echo {data};

Pra ver se te mostra alguma coisa.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Jailton

  • Expert
  • *****
  • Mensagens: 2031
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #10 Online: Julho 08, 2016, 03:17:38 pm »
Comente esse código e coloque apenas:

echo {data};

Pra ver se te mostra alguma coisa.

Assim não vai retornar nada...

Assim é melhor:

echo 'Meu campo data que não existe é = '.{data}."<BR>";

break;

O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #11 Online: Julho 08, 2016, 03:34:22 pm »
Comente esse código e coloque apenas:

echo {data};

Pra ver se te mostra alguma coisa.

Assim não vai retornar nada...

Assim é melhor:

echo 'Meu campo data que não existe é = '.{data}."<BR>";

break;



Retorno...
Meu campo data que não existe é =

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #12 Online: Julho 08, 2016, 03:34:40 pm »
Comente esse código e coloque apenas:

echo {data};

Pra ver se te mostra alguma coisa.

Assim não vai retornar nada...

Assim é melhor:

echo 'Meu campo data que não existe é = '.{data}."<BR>";

break;



Não veio nada..

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #13 Online: Julho 08, 2016, 03:35:06 pm »
Comente esse código e coloque apenas:

echo {data};

Pra ver se te mostra alguma coisa.
Não veio nada...

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Usar um campo tipo data como parte da cláusula sql - Formulário
« Responder #14 Online: Julho 08, 2016, 03:42:59 pm »
Agradecemos imensamente aos meus amigos pela atenção, vocês me estimularam quanto ao sql, e lembre sobre os eventos, tirei do onChange e coloquei a classe em onLoad, e acreditem.... FUNCIONOU!!!

Obrigado pessoal!!!!