none
Onde estou errando neste SELECT ? RRS feed

  • Pergunta

  • select categoria,
    Case When RecebeuBolsa = '' Then count(recebeubolsa) 
    End AS Ausente,
    Case When RecebeuBolsa = 'RecebeuBolsa' Then count(recebeubolsa) 
    End AS Presente,
    Case When RecebeuBolsa <> '' and RecebeuBolsa = 'RecebeuBolsa' Then sum(recebeubolsa)
    End As TOTAL
    from cdpesqueiro 
    group by categoria,RecebeuBolsa

    RESULTADO:

    PRECISO SOMAR OS AUSENTES COM OS PRESENTES!!!! 

    quinta-feira, 2 de agosto de 2012 15:55

Respostas

  • Tenta assim:

    SELECT 
        Categoria,
        SUM(Case When RecebeuBolsa = '' Then 1 else 0 End) AS Ausente,
        SUM(Case When RecebeuBolsa = 'RecebeuBolsa' Then 1 else 0 End) AS Presente,
        /*COUNT(Categoria) as Total*/
        SUM(Case When RecebeuBolsa = '' Then 1 else 0 End) +
        SUM(Case When RecebeuBolsa = 'RecebeuBolsa' Then 1 else 0 End) AS Total
    FROM 
        cdpesqueiro 
    GROUP BY 
        categoria


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    • Marcado como Resposta Harley Araujo quarta-feira, 8 de agosto de 2012 21:39
    segunda-feira, 6 de agosto de 2012 19:36
  • SELECT SS.CATEGORIA, 
                 SS.PRESENTES, 
                 SS.AUSENTES, 
                 TT.TOTAL
     FROM (SELECT 
                           PP.CATEGORIA AS CATEGORIA, 
                           SUM(PP.PRESENTES) AS PRESENTES,
                           SUM(PP.AUSENTES) AS AUSENTES
                FROM (SELECT
                           CATEGORIA,    
                           CASE WHEN RECEBEUBOLSA = '' THEN 1 ELSE 0 END AS AUSENTE, 
                           CASE When RECEBEUBOLSA = 'RECEBEUBOLSA' THEN 1 ELSE 0 END AS PRESENTES
                           FROM CDPESQUEIRO
                           GROUP BY CATEGORIA) PP
                 GROUP BY PP.CATEGORIA) SS
    INNER JOIN 
                     (SELECT CD.CATEGORIA, SS.AUSENTE + SS.PRESENTE AS TOTAL
                      FROM CDPESQUEIRO CD INNER JOIN SS ON SS.CATEGORIA = CD.CATEGORIA) TT

    ON SS.CATEGORIA = TT.CATEGORIA

    • Marcado como Resposta Harley Araujo quarta-feira, 8 de agosto de 2012 21:39
    segunda-feira, 6 de agosto de 2012 20:29

Todas as Respostas

  • Tente assim.

    Select 
        Categoria,
        sum(Case When RecebeuBolsa = '' Then 1 else 0 End) AS Ausente,
        sum(Case When RecebeuBolsa = 'RecebeuBolsa' Then 1 else 0 End) AS Presente,
        COUNT(Categoria) as Total
    from 
        cdpesqueiro 
    group by 
        categoria


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    quinta-feira, 2 de agosto de 2012 17:30
  • Putz, quase!!!

    Tá assim: 

    tem que ficar assim:

    tem que somar ausentes com os presentes!!!!
    quinta-feira, 2 de agosto de 2012 18:10
  • Alguém?
    segunda-feira, 6 de agosto de 2012 16:06
  • Tenta assim:

    SELECT 
        Categoria,
        SUM(Case When RecebeuBolsa = '' Then 1 else 0 End) AS Ausente,
        SUM(Case When RecebeuBolsa = 'RecebeuBolsa' Then 1 else 0 End) AS Presente,
        /*COUNT(Categoria) as Total*/
        SUM(Case When RecebeuBolsa = '' Then 1 else 0 End) +
        SUM(Case When RecebeuBolsa = 'RecebeuBolsa' Then 1 else 0 End) AS Total
    FROM 
        cdpesqueiro 
    GROUP BY 
        categoria


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    • Marcado como Resposta Harley Araujo quarta-feira, 8 de agosto de 2012 21:39
    segunda-feira, 6 de agosto de 2012 19:36
  • SELECT SS.CATEGORIA, 
                 SS.PRESENTES, 
                 SS.AUSENTES, 
                 TT.TOTAL
     FROM (SELECT 
                           PP.CATEGORIA AS CATEGORIA, 
                           SUM(PP.PRESENTES) AS PRESENTES,
                           SUM(PP.AUSENTES) AS AUSENTES
                FROM (SELECT
                           CATEGORIA,    
                           CASE WHEN RECEBEUBOLSA = '' THEN 1 ELSE 0 END AS AUSENTE, 
                           CASE When RECEBEUBOLSA = 'RECEBEUBOLSA' THEN 1 ELSE 0 END AS PRESENTES
                           FROM CDPESQUEIRO
                           GROUP BY CATEGORIA) PP
                 GROUP BY PP.CATEGORIA) SS
    INNER JOIN 
                     (SELECT CD.CATEGORIA, SS.AUSENTE + SS.PRESENTE AS TOTAL
                      FROM CDPESQUEIRO CD INNER JOIN SS ON SS.CATEGORIA = CD.CATEGORIA) TT

    ON SS.CATEGORIA = TT.CATEGORIA

    • Marcado como Resposta Harley Araujo quarta-feira, 8 de agosto de 2012 21:39
    segunda-feira, 6 de agosto de 2012 20:29
  • Reginaldo pode me ajudar?

    SELECT SS.CATEGORIA, 
                 SS.PRESENTES, 
                 SS.AUSENTES, 
                 TT.TOTAL 
     FROM (SELECT 
                           PP.CATEGORIA AS CATEGORIA, 
                           SUM(PP.PRESENTES) AS PRESENTES,
                           SUM(PP.AUSENTES) AS AUSENTES
                FROM (SELECT
                           CATEGORIA,     
                           CASE WHEN QTD_IMPRESSOS = '' THEN 1 ELSE 0 END AS AUSENTE, 
                           CASE When QTD_IMPRESSOS <> '' THEN 1 ELSE 0 END AS PRESENTES
                           FROM cadastroafrica
                           GROUP BY CATEGORIA) PP
                 GROUP BY PP.CATEGORIA) SS
    INNER JOIN 
                     (SELECT CD.CATEGORIA, SS.AUSENTE + SS.PRESENTE AS TOTAL 
                      FROM cadastroafrica CD INNER JOIN SS ON SS.CATEGORIA = CD.CATEGORIA) TT

    ON SS.CATEGORIA = TT.CATEGORIA

    AS COLUNAS...

    quinta-feira, 23 de agosto de 2012 20:46
  • Vinicius,

    o código que eu formulei é para gerar o total de presentes e ausentes de cada categoria, você precisa rodar este código no banco que tenha a tabela CDPESQUEIRO, não vai funcionar para a tabela eventoafrica pois esta não tem as colunas categoria, presente e ausente.

    Me parece que você está com um outro problema, lhe aconselho a postar um outro tópico explicando o problema.

    Caso tenha sido útil, peço que classifique.

    sexta-feira, 24 de agosto de 2012 16:00