none
Ajuda em Select com numero de reincidencia de uma palavra num intervalo de datas RRS feed

  • Pergunta

  • Boa noite, eu sou iniciante em banco de dados e estou com um problema que não consigo resolver

     

    Preciso de uma select que retorne os dados onde a palavra sim foi digitada 4 vezes pelo mesmo jogador entre xx/xx/xxxx e xx/xx/xxxx

    Eu consegui montar a seguinte consulta para pegar os dados num periodo especifico: SELECT * FROM Historico WHERE Data BETWEEN 'xxxx-xx-xx' AND 'xxxx-xx-xx'

    E essa que conta o numero de vezes que ele respondeu Sim: select count (Vencido) from historico where vencido = 'Sim'

    Não sei se estou no caminho certo, mas se estiver, como faço para unir essas duas consultas, e fazer trazer os dados de acordo com o numero de reincidencia da palavra sim que eu escolher entre duas datas

    Agradeço a atenção de quem tentar me ajudar

    quarta-feira, 24 de agosto de 2011 04:23

Respostas

  • Opa

     

    Veja este exemplo


    create table #teste(Tipo char(10), Resp CHAR(3))

    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','NAO'
    INSERT INTO #teste
    SELECT 'CCCC','NAO'


    SELECT Tipo, Resp, sum(case Resp when 'SIM' then 1 else 0 end) as 'Qtde de Sim'
      FROM #teste
      GROUP BY Tipo, resp
    HAVING sum(case Resp when 'SIM' then 1 else 0 end) >= 4

     

    DROP TABLE #teste

    ele retorna somente os 'sim' >= 4

     

    é só adaptar na sua tabela colocando o AND DATA BETWEEN 'XX' AND 'XX'

     

     

    espero ter ajudado

     

     


    Isco Sistemas José Luiz Borges
    • Sugerido como Resposta Eder Costa terça-feira, 30 de agosto de 2011 16:32
    • Marcado como Resposta Eder Costa quinta-feira, 1 de setembro de 2011 15:12
    quarta-feira, 24 de agosto de 2011 12:09

Todas as Respostas

  • Bom dia,

    Tente da seguinte forma

    SELECT COUNT(Vencido) FROM historico WHERE Data BETWEEN 'xxxx-xx-xx' AND 'xxxx-xx-xx' and AND vencido = 'Sim'

    Espero ter ajudado, se for o caso, marque como útil e como resposta.

    Até mais.


    Rafael Godoi Sabadin
    http://www.linkedin.com/in/rafaelgodoisabadin
    Classifique as respostas. O seu feedback é essencial.
    • Marcado como Resposta Ed Cesar domingo, 4 de setembro de 2011 11:48
    • Não Marcado como Resposta Ed Cesar domingo, 4 de setembro de 2011 11:48
    quarta-feira, 24 de agosto de 2011 11:14
  • Opa

     

    Veja este exemplo


    create table #teste(Tipo char(10), Resp CHAR(3))

    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','SIM'
    INSERT INTO #teste
    SELECT 'AAAA','NAO'
    INSERT INTO #teste
    SELECT 'CCCC','NAO'


    SELECT Tipo, Resp, sum(case Resp when 'SIM' then 1 else 0 end) as 'Qtde de Sim'
      FROM #teste
      GROUP BY Tipo, resp
    HAVING sum(case Resp when 'SIM' then 1 else 0 end) >= 4

     

    DROP TABLE #teste

    ele retorna somente os 'sim' >= 4

     

    é só adaptar na sua tabela colocando o AND DATA BETWEEN 'XX' AND 'XX'

     

     

    espero ter ajudado

     

     


    Isco Sistemas José Luiz Borges
    • Sugerido como Resposta Eder Costa terça-feira, 30 de agosto de 2011 16:32
    • Marcado como Resposta Eder Costa quinta-feira, 1 de setembro de 2011 15:12
    quarta-feira, 24 de agosto de 2011 12:09
  • Jose luiz, foi perfeita a sua resposta. Desculpe só responder agora, é que tinha deixado para comentar depois e acabei esquecendo.

    Muito obrigado mesmo!

    domingo, 4 de setembro de 2011 11:52