Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''having''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 2 registros

  1. Bom dia, Segue um exemplo detalhado do problema, não consigo obter o total de registros para fazer a paginação. Quero entender porque o count com filtro 'venda' feito com having me retorna 3 linhas em vez de pegar o total. Desde já agradeço a ajuda! :) imovel ------------------------------------- id_imovel imovel publicado ----------- ---------- ------------ 1 imovel 01 1 2 imovel 02 1 3 imovel 03 1 4 imovel 04 1 imovel_custom ------------------------------------- imovel_id key value ----------- ---------- ---------- 1 transacao locacao 1 valor 10.0 1 area 120.0 2 transacao venda 2 valor 100.0 2 area 130.0 3 transacao venda 3 valor 110.0 3 area 140.0 4 transacao venda 4 valor 120.0 4 area 150.0 Lista com todos os tipos de transação: SELECT i.*, ic.*, MAX(CASE WHEN ic.key = 'transacao' THEN ic.value ELSE NULL END) AS transacao, MAX(CASE WHEN ic.key = 'valor' THEN ic.value ELSE NULL END) AS valor, MAX(CASE WHEN ic.key = 'area' THEN ic.value ELSE NULL END) AS area FROM imovel AS i LEFT JOIN imovel_custom AS ic ON i.id_imovel = ic.imovel_id WHERE publicado='1' GROUP BY i.id_imovel Resultado ------------------------------------------------------------------------- id_imovel imovel publicado transacao valor area ----------- ---------- ------------ ---------- ---------- ---------- 1 imovel 01 1 locacao 10.0 120.0 2 imovel 02 1 venda 100.0 130.0 3 imovel 03 1 venda 110.0 140.0 4 imovel 04 1 venda 120.0 150.0 Count para paginação com todos os tipos de transação: SELECT COUNT(DISTINCT i.id_imovel) as total FROM imovel AS i LEFT JOIN imovel_custom AS ic ON i.id_imovel = ic.imovel_id WHERE publicado='1' Resultado --------------------------------------------------------------- total --------- 4 Lista com transação venda: SELECT i.*, ic.*, MAX(CASE WHEN ic.key = 'transacao' THEN ic.value ELSE NULL END) AS transacao, MAX(CASE WHEN ic.key = 'valor' THEN ic.value ELSE NULL END) AS valor, MAX(CASE WHEN ic.key = 'area' THEN ic.value ELSE NULL END) AS area FROM imovel AS i LEFT JOIN imovel_custom AS ic ON i.id_imovel = ic.imovel_id WHERE publicado='1' GROUP BY i.id_imovel HAVING transacao='venda' Resultado ------------------------------------------------------------------------- id_imovel imovel publicado transacao valor area ----------- ---------- ------------ ---------- ---------- ---------- 2 imovel 02 1 venda 100.0 130.0 3 imovel 03 1 venda 110.0 140.0 4 imovel 04 1 venda 120.0 150.0 Count para paginação com transação venda: SELECT COUNT(DISTINCT i.id_imovel) as total FROM imovel AS i LEFT JOIN imovel_custom AS ic ON i.id_imovel = ic.imovel_id WHERE publicado='1' GROUP BY i.id_imovel HAVING ( MAX(CASE WHEN ic.key = 'transacao' THEN ic.value ELSE NULL END)='venda' ) Resultado --------------------------------------------------------------- total --------- 1 1 1
  2. Olá pessoal, poderiam me ajudar? Tenho as seguintes tabelas: CREATE TABLE horariofuncionario ( codigo_horariofuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo_statushorariofuncionario INTEGER UNSIGNED NOT NULL, codigo_funcionario INTEGER UNSIGNED NOT NULL, horario_horariofuncionario VARCHAR(5) NOT NULL, data_horariofuncionario VARCHAR(10) NOT NULL, nomeDiaSemana_horariofuncionario VARCHAR(15) NOT NULL, PRIMARY KEY(codigo_horariofuncionario), FOREIGN KEY(codigo_funcionario) REFERENCES funcionario(codigo_funcionario) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(codigo_statushorariofuncionario) REFERENCES statushorariofuncionario(codigo_statushorariofuncionario) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE servicosalao ( codigo_servicosalao INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo_salao INT NOT NULL, codigo_servico INTEGER UNSIGNED NOT NULL, preco_servicosalao VARCHAR(20) NULL, tempo_servicosalao INTEGER UNSIGNED NULL, descricao_servicosalao VARCHAR(200) NULL, PRIMARY KEY(codigo_servicosalao), FOREIGN KEY(codigo_salao) REFERENCES salao(codigo_salao) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(codigo_servico) REFERENCES servico(codigo_servico) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE statushorariofuncionario ( codigo_statushorariofuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_statushorariofuncionario VARCHAR(30) NOT NULL, PRIMARY KEY(codigo_statushorariofuncionario) ); Preciso selecionar os HORARIOFUNCIONARIO.horario_horariofuncionario em que o HORARIOFUNCIONARIO.codigo_statushorariofuncionario seja 1 ou 3 e que não contenha nenhum registro na tabela horariofuncionario em que o HORARIOFUNCIONARIO.horario_horariofuncionario esteja entre o HORARIOFUNCIONARIO.horario_horariofuncionario e o HORARIOFUNCIONARIO.horario_horariofuncionario + SERVICOSALAO.tempo_servicosalao e o HORARIOFUNCIONARIO.codigo_statushorariofuncionario seja igual a 2. Então tenho a query: SELECT hf.horario_horariofuncionario FROM horariofuncionario hf WHERE hf.codigo_statushorariofuncionario IN (1,3) HAVING (SELECT COUNT(hf.codigo_horariofuncionario) FROM horariofuncionario hf NATURAL JOIN servicosalao ss WHERE hf.codigo_statushorariofuncionario = 2 AND STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') BETWEEN STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') AND SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') ) + TIME_TO_SEC( STR_TO_DATE(ss.tempo_servicosalao,'%H:%i') ) ) ) ) < 1;Está retornando o erro: Invalid use of group function ErrorNr 1111
×
×
  • Criar Novo...