
crazySerk
Membros-
Total de itens
95 -
Registro em
-
Última visita
Sobre crazySerk

crazySerk's Achievements
0
Reputação
-
Olá pessoal, tudo bom? É o seguinte, estou com um problema cabuloso em uma procedure e não estou conseguindo encontrar a solução, a principio até identifiquei o problema, o problema está sendo nesse trecho aqui... - verifica se existe lead criado para o cliente para a mesma data SET @leadExist = 0; SET @sql = CONCAT('SELECT COUNT(*) INTO @leadExist FROM leads_leads where company_id = ',companyId,' and DATE(created_at) = DATE("',DATE,'") and ( ', 'email = "',email,'" or ( ddd = "',ddd_tel,'" and phone = "',tel,'" ) ) limit 1 '); INSERT INTO debug_msg(TEXT) VALUES ( @sql); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET leadExist = @leadExist; Ele está retornando a seguinte mensagem: Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NULL' at line 1 Pelo que estou entendendo o problema é o COUNT(*) está retornando NULO e não pode inserir na variavel @leadExist, seria isso? Certo? Quando eu retiro esse trecho acima a minha procedure executa tudo certo... Já não sei o que fazer mais... Estou rodando a internet para encontrar uma solução porém não consigo encontrar. Se alguém puder ajudar, agradeço!!!
-
Markus, conseguiria sem utilizar Union?
-
Galera, tudo bem com vocês? Estou precisando de uma ajuda no seguinte caso. Possuo uma busca de classificados que os usuários podem buscar palavras chaves e encontrar o q esta procurando, até aqui esta ok. O problema é o seguinte, eu preciso ordenar a busca pela palavra chave seguindo a seguinte regra: - o usuario buscou a palavra HOTEL - primeira condição é ver se a palavra existe no NOME da empresa - Segunda condição é verificar se a palavra existe no KEYWORD da empresa Seguindo essa regra a ideia é que se a pessoa buscou o nome HOTEL todas as empresas que possui o termo "HOTEL" (no campo NOME) vai vim primeiro e posteriormente o que estão no keyword. O que eu fiz ate o momento é essa consulta: SELECT nome, keyword FROM empresas_parceiros WHERE 1=1 AND (nome LIKE '%HOTEL%' OR keyword LIKE '%HOTEL%') ORDER BY nome, keyword LIMIT 0, 20 ; A Saída dessa consulta ficou assim: - Hotel Paraguaia - Clinica Veterinaria (possui a palavra hotel no Keyword) - Posto Shell (idem ) - Hotel De Minas Porém a forma correta que precisava exibir era: - Hotel Paraguaia - Hotel De Minas - Clinica Veterinaria (possui a palavra hotel no Keyword) - Posto Shell (idem ) Alguém já passou por algo parecido? Consigo fazer isso no SQL ? Umas das tentativas eu coloquei um "ORDER BY NOME LIKE '%HOTEL%'" mas não adiantou não.... Agradeço a ajuda!
-
Alguém sabe se é possivel fazer está ação?
-
Opa salve galera, seguinte.. não sei se é possivel, mas estou tentando fazer um select com campos dinamicos, para tentar explicar melhor e ser mais direto meu select é este aqui: select a.`cod_oportunidade`, b.nome nome_cliente, c.descricao estado, d.descricao cidade, e.nome nome_funcionario_criou, f.nome nome_funcionario_resp, i.`descricao`, ( case when i.`js_dinamico` = 'S' and h.valor <> null then (select @i.js_descricao as descricao from @i.js_tabela where @i.js_valor = h.valor) else h.valor end ) as valor from oportunidades_clientes a left outer join empresas_clientes b on b.cod_cliente = a.cod_cliente left outer join sistema_estados c on c.cod_estado = b.cod_estado left outer join sistema_cidades d on d.cod_cidade = b.cod_cidade left outer join empresas_funcionario e on e.cod_funcionario = a.cod_funcionario_criou left outer join empresas_funcionario f on f.cod_funcionario = a.cod_funcionario_resp left outer join formulario_valor h on h.`cod_oportunidade` = a.`cod_oportunidade` left outer join formulario_campo i on i.`cod_campo` = h.`cod_campo` where 1 = 1 and a.`cod_oportunidade` = 3 Podem perceber dentro do case estou fazendo um outro select, porém os campos e valores estão vindo do meu select principal, porém não está indo, existe uma maneira disso dar certo?
-
Otimo deu certo aqui! uma outra dúvida, consigo limitar o group_concat ? Exemplo, eu quero apenas 4 nos que apareça, até mesmo porque suponhamos que tenho um groupo com 10000 a string de nome ficará enorme.
-
Galera to com uma bronca e não sei se vai ser possivel fazer isso tudo no select mas acredito que sim.. Bom, eu preciso fazer uma busca em uma tabela agrupando os valores iguais, ate o momento meu select esta assim. select count(a.cod_sell) as total, a.cod_user, a.message, date(a.date_register) from sell_request a where a.cod_user = 2 and a.cod_check = 7 and a.cod_accepted = 1 group by a.cod_check, a.cod_sell, a.cod_user order by total desc Este select ai está funcionando tranquilo, estou agrupando os valores atraves do Check, Usuario e do Cod_sell.. O problema está sendo o seguinte.. Como que estou agrupando os valores vamos supor que no meu primeiro registro eu vou ter o atributo alias "total" = 3, então nele teremos 3 usuarios certo? O que eu preciso, nesse select colocar a tabela "user"para saber quem são as pessoas que estão no agrupamento, dessa maneira coloquei esse join: select count(a.cod_sell) as total, a.cod_user, a.message, date(a.date_register), b.nick from sell_request a left outer join user b on b.cod_user = a.cod_user where a.cod_user = 2 and a.cod_check = 7 and a.cod_accepted = 1 group by a.cod_check, a.cod_sell, a.cod_user order by total desc Ele me retorna os itens agrupados porem na coluna "NICK" só aparece o nome de 1 usuario, precisava que nessa coluna aparecesse o nome dos 3 usuarios, poderia aparecer com virgula , tracinho, qualquer forma, mas deveria aparecer.. KKKKK O que preciso fazer? Agradeço ajuda antecipadamente!
-
Denis, fiz a procedure, e o evento porem fiz um teste aqui o meu evento não esta executando... Coloquei pra eexecutar em minutos porem não executou... não aparece erro na hora de compilar nada.. Esqueci de algo? Evento: DELIMITER $$ ALTER DEFINER=`bancoteste`@`%` EVENT `gerarFaturaAssociado` ON SCHEDULE EVERY 24 HOUR STARTS '2015-02-21 00:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN CALL gerarFaturaAssociado(); END$$ DELIMITER ; Agora no evento acima coloquei pra executar todo dia a meia noite... mas como citei antes não esta funcionando. Fiz o teste pra executar 5 minutos depois mas não foi...
-
Olá, estou precisando de uma ajuda... Tenho uma tabela que possuo o cadastro de clientes e nela contem um campo "data_vencimento" e "valor", preciso que todo dia execute uma função no banco que verifique está tabela procurando clientes que estão quase chegando na data de vencimento, isso é 5 dias de vencer, encontrando o cliente neste caso faço uma inserção em outra tabela "cliente_pagamento" colocando o cod_cliente, a data de vencimento e o valor, em resumo estou gerando uma fatura para o cliente, explicando de uma forma melhor ficaria mais ou menos assim... Tabela de cliente: Cliente A - Data Vencimento: 25/02/2015 - Valor: 55,00 no dia 20 geraria automaticamente uma inserção na tabela cliente_pagamento. Como que consigo fazer isto pelo banco?
-
Galera tenho este retorno de JSON: { "CLIENT": 61, "NAME": "TESTE ACESSA", "ACESS": [ { "ALL OPTION": "CONFIGURATION" } ] } a minha duvida é como que faço para mostrar o texto "ALL OPTION" e não o que ele possui.. Por exemplo se eu quiser mostrar o que o ALL OPTION tem eu utilizo: $json->{'ALL OPTION'}; Mas ao invés disso preciso mostrar apenas o nome desse Acesso que seria o ALL OPTION. Como que faço isso?
-
Galera estou usando este select: SELECT * FROM anuncio_popup a WHERE a.status = 'A' AND a.data_inicio >= NOW() AND a.data_final <= NOW() ORDER BY RAND() LIMIT 1 Preciso verificar se a data atual é maior ou igual a data_inicio se for verdade então a campanha está em andamento ou começa no dia. E também preciso checar se a data atual não ultrapassou a data_final, caso a data atual já passou do prazo final não me retorna nada. Bem basicamente está é a logica. A questão é que não me retorna nada esse select apenas vazio, e possuo dados salvo por exemplo uma campanha que começar hoje (19/03) e que termina dia 25/03... O select acima não deveria funcionar?
-
Galera, to com uma bronca aqui que acredito que seja simples. Bom tenho uma tabela que fica salvo resumos de livros que foram enviados ( as pessoas digitam um resumo do livro e envia ) na tabela eu tenho 2 colunas que são data_envio que é o dia que foi feito o envio do resumo, e a coluna mes_referencia que é para qual mes aquele resumo foi enviado. O que eu preciso agora, gerar um relatorio de todos os usuarios que enviaram resumo, comparando se a Data de envio é o mesmo que o mes referencia, se a condição for verdadeira o usuario ganha uma estrela se não ele ganha uma bolinha vermelha. Dessa maneira eu montei este select: select a.`USUARIO`, (IF((MONTH(a.`DATA_ENVIO`) = 1 and a.`MES_REFERENCIA` = 1),1,0)) AS 'JAN', (IF((MONTH(a.`DATA_ENVIO`) = 2 and a.`MES_REFERENCIA` = 2),1,0)) AS 'FEV', (IF((MONTH(a.`DATA_ENVIO`) = 3 and a.`MES_REFERENCIA` = 3),1,0)) AS 'MAR' from rh_resumos a group by a.`USUARIO` Qual o erro? na tabela eu tenho 2 valores salvos sendo eles 1 resumo enviado no mes de Janeiro e um para Fevereiro, ambos resumos foram enviados no período certo, Porém quando eu executo este select ele traz apenas este resultado: USUARIO | JAN | FEV | MAR Teste | 0 | 1 | 0 O Correto seria: USUARIO | JAN | FEV | MAR Teste | 1 | 1 | 0 O que fiz de errado?
-
Galera, tenho este select, e está funcionando normalmente, a minha dúvida é a seguinte. Quando não possuo nenhum dado no periodo buscado ele me retorna nada, porém deveria me retornar os campos Enviada, Aprovada... e etc, com os valores 0, pois estou fazendo a soma com 1 ou somando 0 ? SELECT c.`cod_empresa`, c.`cod_loja`, d.nome AS nome_empresa, (SELECT COUNT(cod_proposta) FROM propostas WHERE cod_empresa = c.`cod_empresa` AND cod_loja = c.cod_loja AND data_cadastro = '2014-01-12') AS 'ENVIADA', SUM(CASE WHEN a.`cod_status` = 2 THEN 1 ELSE 0 END) AS 'ANALISE', SUM(CASE WHEN a.`cod_status` = 3 THEN 1 ELSE 0 END) AS 'PENDENTE', SUM(CASE WHEN a.`cod_status` = 4 THEN 1 ELSE 0 END) AS 'REPROVADA', SUM(CASE WHEN a.`cod_status` = 5 THEN 1 ELSE 0 END) AS 'APROVADA', SUM(CASE WHEN a.`cod_status` = 6 THEN 1 ELSE 0 END) AS 'FATURADA', SUM(CASE WHEN a.`cod_status` = 7 THEN 1 ELSE 0 END) AS 'CANCELADA' FROM propostas c LEFT OUTER JOIN propostas_status a ON (a.`cod_proposta` = c.`cod_proposta`) LEFT OUTER JOIN empresas_usuarios b ON b.`usuario` = c.`usuario` LEFT OUTER JOIN empresas_lojas d ON d.cod_loja = c.cod_loja WHERE 1 = 1 AND c.cod_empresa = 6 AND c.cod_loja = 55 AND c.data_cadastro = '2014-01-12' GROUP BY c.`cod_loja` ORDER BY c.`cod_loja`; O que eu posso fazer pra retornar a empresa mesmo que não tenha nada porém com os valores 0 nos campos..
-
Adicione isso em seu código... ini_set('display_errors',1); ini_set('display_startup_erros',1); error_reporting(E_ALL); E veja o erro que vai aparecer.
-
Eu utilizo o SqlYog ele faz isso?