none
Ajuda com Group By RRS feed

  • Pergunta

  • Tenho uma tabela com a seguinte estrutura (alguns campos inúteis foram retirados):

    Code Snippet
    CREATE TABLE [dbo].[Debitos](
     [Matricula] [int] NOT NULL,
     [MesReferencia] [varchar](5) NOT NULL,
     [Turma] [varchar](20) NOT NULL,
     [Agencia] [varchar](15) NULL,
     [Banco] [varchar](12) NULL,
     [BancoBoleta] [varchar](12) NULL,
     [DataVencimento] [datetime] NOT NULL,
     [NumeroBoleta] [varchar](17) NULL,
     [Valor] [money] NOT NULL,
     [Status] [int] NOT NULL,
     CONSTRAINT [PK_Debitos] PRIMARY KEY CLUSTERED
    (
     [Matricula] ASC,
     [MesReferencia] ASC,
     [Turma] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]

     

     

    Preciso exibir em um grid a seguinte estrutura:

     

    Matrícula  |  Quantidade Débitos Status 0 | Quantidade Débitos Status 1 | Quantidade Total Débitos

    13213210 | 5                                          | 2                                         | 7

     

    Como posso selecionar todos os registros dessa tabela "Debitos" e ir contando de acordo com o valor do campo "Status" ? É possível fazer isso com apenas 1 SELECT ou tenho que ir por partes?

     

    Obrigado.

     

    quarta-feira, 4 de junho de 2008 04:40

Respostas

  •  

    veja se ajuda

     

    Select Matricula, Status0 = Sum(Case When Status = 0 then 1 else 0 end),
                      Status1 = Sum(Case When Status = 1 then 1 else 0 end)
    From Debitos
    Group by MAtricula

     

    Abs/;

    quarta-feira, 4 de junho de 2008 10:34

Todas as Respostas

  •  

    veja se ajuda

     

    Select Matricula, Status0 = Sum(Case When Status = 0 then 1 else 0 end),
                      Status1 = Sum(Case When Status = 1 then 1 else 0 end)
    From Debitos
    Group by MAtricula

     

    Abs/;

    quarta-feira, 4 de junho de 2008 10:34
  • Obrigado, Marcelo.

     

    Realmente muito simples...não sabia que conseguiria assim.

    quinta-feira, 5 de junho de 2008 12:03