-
Total de itens
180 -
Registro em
-
Última visita
Tudo que Tchello postou
-
estou tentando executar a seguinte rotina: $sql = "SELECT a.ped_data, a.ped_id, a.ped_numero, b.cliente_cli_id, c.cli_razao, DATEDIFF(CURDATE(),a.ped_data) AS dias, d.usu_nome FROM pedido a INNER JOIN historico_rel b ON a.historico_rel_hir_id = b.hir_id INNER JOIN cliente c ON b.cliente_cli_id = c.cli_id INNER JOIN usuario d ON b.usuario_usu_id = d.usu_id WHERE a.ped_tipo <> 2 AND a.ped_gratuito = 0 AND a.ped_status = 1 GROUP BY usuario_usu_id, cli_id HAVING MAX(ped_data) ORDER BY dias DESC, usu_nome"; $res = mysql_query($sql) or die (mysql_error()); while($row=mysql_fetch_array($res)){ $ped_data = $row["ped_data"]; $cliente_cli_id = $row["cliente_cli_id"]; $dias = $row["dias"]; $c++; if($dias < 91){ $perfil = 0; } if($dias > 90){ $perfil = 1; } $sql = ("UPDATE cliente SET cli_perfil = '$perfil' WHERE cli_id = '$cliente_cli_id'"); $sql = mysql_query($sql) or die (mysql_error()); Porém não está atualizado o perfil para aqueles que tem mais de 90 dias o perfil deverá ser = '1'.
-
Bom pessoal consegui resolver em partes, com o código abaixo: SELECT MAX(a.ped_data) AS data, MAX(a.ped_id) AS pedid, MAX(a.ped_numero) AS pedido, a.ped_tipo, b.usuario_usu_id, c.cli_id, c.cli_perfil, c.cli_razao, a.ped_total_pedido AS total, DATEDIFF(CURDATE(),MAX(a.ped_data)) AS dias FROM cliente c INNER JOIN historico_rel b ON b.cliente_cli_id = c.cli_id INNER JOIN pedido a ON a.historico_rel_hir_id = b.hir_id WHERE a.ped_tipo <> 2 AND a.ped_gratuito = 0 AND a.ped_status = 1 AND b.usuario_usu_id = 'televendas02' GROUP BY c.cli_razao ORDER BY data Porém o total(valor) não retorna o correspondente, se eu colocar: MAX(a.ped_total_pedido) AS total, retorna o maior valor e não o último inserido. Alguém tem alguma idéia????
-
Segue o print do resultado de acordo com o código q você postou, porém continua retornando o mesmo resultado: Query SELECT STRAIGHT_JOIN DISTINCT a.ped_data, c.cli_razao, a.ped_total_pedido FROM cliente c INNER JOIN historico_rel b ON b.cliente_cli_id = c.cli_id INNER JOIN pedido a ON a.historico_rel_hir_id = b.hir_id WHERE c.cli_id = '2393' GROUP BY c.cli_razao HAVING MAX(a.ped_data) ped_data cli_razao ped_total_pedido 2010-11-30 PAULO ARAUJO - TESTE 3000
-
Fiz como indicado porém ainda está retornando o primeiro e não o último (quanto a data q você mencionou é apenas a data do sistema q saiu no print) SELECT STRAIGHT_JOIN DISTINCT a.ped_data, c.cli_razao, a.ped_total_pedido FROM pedido a INNER JOIN historico_rel b ON a.historico_rel_hir_id = b.hir_id INNER JOIN cliente c ON b.cliente_cli_id = c.cli_id WHERE c.cli_id = '2393' HAVING MAX(ped_data) ped_data cli_razao ped_total_pedido 2010-11-30 PAULO ARAUJO - TESTE 3000
-
Cara deu + ou - certo por exceção de um detalhe não retornou a última data, abaixo segue os prints dos resultados prá vê se ajuda: Total de pedidos(vendas) de um cliente teste: SELECT a.ped_data, c.cli_razao, a.ped_total_pedido FROM pedido a INNER JOIN historico_rel b ON a.historico_rel_hir_id = b.hir_id INNER JOIN cliente c ON b.cliente_cli_id = c.cli_id WHERE c.cli_id = '2393' ped_data cli_razao ped_total_pedido 2010-11-30 PAULO ARAUJO - TESTE 3000 2010-11-30 PAULO ARAUJO - TESTE 3000 2010-11-30 PAULO ARAUJO - TESTE 2500 2010-11-30 PAULO ARAUJO - TESTE 1800 2010-11-30 PAULO ARAUJO - TESTE 6400 2010-12-03 PAULO ARAUJO - TESTE 1000 2010-12-03 PAULO ARAUJO - TESTE 6300 2010-12-03 PAULO ARAUJO - TESTE 450 Resultado seguindo sua dica: SELECT a.ped_data, c.cli_razao, a.ped_total_pedido FROM pedido a INNER JOIN historico_rel b ON a.historico_rel_hir_id = b.hir_id INNER JOIN cliente c ON b.cliente_cli_id = c.cli_id WHERE c.cli_id = '2393' GROUP BY c.cli_razao HAVING MAX(a.ped_data), Fri Dec 17 11:09:53 2010 ped_data cli_razao ped_total_pedido 2010-11-30 PAULO ARAUJO - TESTE 3000 Retornou o primeiro registro e não o último, o que pode estar errado?
-
SELECT * FROM tabela ORDER BY codigos; Vai listar pela ordem dos códigos...
-
não sei bem se é isso que você quer, mas aí vai. você tem uma tabela de clientes e outra com os tipos de seguros adquiridos, certo? Ex.: Tabela Clientes: cli_id - cli_razao Tabela Tipos de Seguro: seg_id - seg_nome Aí pode ter uma terceira tabela que seria dos seguros adquiridos: cli_id - seg_id (onde seriam cadastrados os ids dos cliente com os tipos de seguros adquiridos) aí no resultado faria assim: SELECT a.cli_id, a.cli_razao, b.seg_nome FROM clientes a INNER JOIN seguros_adquiridos c ON a.cli_id = c.cli_id Print: cli_id | cli_razao | seg_nome 1 Empresa X Seguro Y 1 Empresa X Seguro J 2 Empresa Y Seguro Y Vê se isso ajuda
-
Tenho uma tabela de vendas e preciso listar a "última" compra de cada cliente, ex.: Cliente - Data da Última Venda Fulano 2010-11-25 Cicrano 2010-12-10 Beltrano 2010-12-13
-
Tenho uma tabela de pedidos que tem os seguinte status: Pedido, Cotação e Prospect. Como faço para printar o seguinte resultado: Vendedor: Nome do Vendedor Objetivo | Quantidade | % ----------------------------------- Pedido 5 50% Cotação 3 30% Prospect 2 20% ------------------------------------- Total | 10 | 100%
-
É + ou - isso, só que preciso imprimir isso como uma coluna: usu_id descricao qtde total televendas02 SEM PEDIDO 7 15 televendas02 PEDIDO 5 15 televendas02 PEDIDO DE TESTE 2 15 televendas02 COTAÇÃO 1 15
-
SELECT a.id, a.nome, a.email, a.id_grupo FROM contato a INNER JOIN grupo b ON a.id_grupo = b.id_grupo
-
Tenta usar INNER JOIN no lugar de LEFT JOIN
-
Tenho a seguinte consulta: SELECT b.usu_id, CASE WHEN a.hir_resultado = 0 then 'PEDIDO' WHEN a.hir_resultado = 1 then 'SEM PEDIDO' WHEN a.hir_resultado = 2 then 'PEDIDO DE TESTE' WHEN a.hir_resultado = 3 then 'COTAÇÃO' END as descricao, count(hir_id) as qtde, COUNT(DISTINCT a.hir_id) AS total FROM historico_rel a INNER JOIN usuario b on a.hir_usuario_representante = b.usu_id GROUP BY descricao Que retorna este resultado: usu_id descricao qtde televendas02 SEM PEDIDO 7 televendas02 PEDIDO 5 televendas02 PEDIDO DE TESTE 2 televendas02 COTAÇÃO 1 Até aí tudo ok, agora queria saber como puxo a qtde(total) na mesma query? Grato
-
Crie uma coluna indicando se é cep único ou não. Aí você pode fazer um if: if($cep_unico == 'sim'){ echo "$nome_cidade"; } else { echo "$endereco"; } É meio tosco mas vai funcionar...
-
Eu fiz assim: mysql> select produto, sum(baixa.qtde)as baixa, sum(devolucao.qtd)as devolucao from baixa left join devolucao on baixa.produto = devolucao.prod group by produto; +---------+-------+-----------+ | produto | baixa | devolucao | +---------+-------+-----------+ | agua | 4 | 1 | | refri | 5 | 2 | +---------+-------+-----------+ $diferenca=$baixa-$devolucao;
-
Consegui resolver, segue a solução: select user, count(distinct ordserv) as cadastradas, count(*) as total from tabela where month(data) = month(curdate()) group by user order by total desc; Aí na porcentagem: $duplicadas = $total-cadastradas; $porcentagem = $duplicadas/$total*100;
-
Tente: SELECT * FROM tabela WHERE data BETWEEN CURDATE() AND CURDATE()+30; //CURDATE() é a data atual.
-
Tenho na tabela as seguintes colunas: user, ordserv, data. Preciso fazer um select da seguinte maneira: mes | user | total de ordserv cadastradas | qtde de ordserv duplicadas | % de duplicadas no mes Já tentei usando o having count(*), mas não consegui. Alguém pode dar uma ajuda, desde já agradeço a colaboração.
-
Consegui... Segue a resolução: // Verifica se algum campo foi selecionado if(isset($_POST["campo"])) { // Faz loop pelo array dos campos foreach($_POST["campo"] as $campos) { $sql = "SELECT * FROM tabela WHERE campo IN('$campos')"; } }
-
Já tente, porém retorna somento o primeiro item selecionado.
-
A forma mais segura é parar o serviço do MySQL antes de fazer o backup, garantindo assim que nada será alterado durante a cópia, como no exemplo abaixo: # /etc/init.d/mysql stop # tar -zcvf mysql.tar.gz /var/lib/mysql/ # /etc/init.d/mysql start A segunda opção é fazer um backup online, sem parar o servidor. O utilitário mais simples (e provavelmente o mais usado) para isso é o mysqldump, que acompanha o pacote principal do MySQL. Para salvar todas as bases de dados do servidor no arquivo "backup.sql", criado no diretório atual, por exemplo, o comando seria: # mysqldump -u root -p -x -e -A > backup.sql
-
Tenho num form um checkbox com vários itens (em torno de 80 itens). Como faço o select quando o usuários seleciona mais de 1(um) item? Preciso fazer um select assim: SELECT * FROM tabela WHERE itens = 'itens selecionados no checkbox'; Desde já agradeço a colaboração.
-
Eu sei o problema é: como jogo isto no post(formulário) para o select ex.: Bairro: <input name='bairros' type=text> e é preenchido: ahú, bacacheri dentro do form Aí no select: SELECT * FROM tabela WHERE bairro IN ($bairros); o problema é que no select, dentro do IN se não estiver separado por um delimitadore tipo ' ' e virgual ele não faz a consulta. A minha dificuldade está em dividir os bairros dentro do select.
-
coloca um (mysql_error()) na query prá ver qual erro dá.
-
$sql = "SELECT * FROM produtos"; $res = mysql_query($sql); while($linha=mysql_fetch_array($res)){ $id = $linha["id"]; $nome = $linha["nome"]; $preço = $linha["preço"]; $etc = $linha["etc"]; ?> <td class="style4"><? echo "$id"; ?></td> <td class="style4"><? echo "$nome"; ?></td> <td class="style4"><? echo "$preço"; ?></td> <td class="style4"><? echo "$etc"; ?></td> <? } ?>