Nao consigo fazer Group By

Firebird

17/10/2006

Salve galera, to quebrando a cabeça, voces pode ajudar ?

CREATE TABLE PACIENTES (
PAC_PRONT INTEGER NOT NULL,
PAC_NOME VARCHAR(60),
PAC_DATA_CAD DATE
);


CREATE TABLE ATENDIMENTOS (
ATE_REG INTEGER NOT NULL,
ATE_PRONT INTEGER,
ATE_DATA DATE,
ATE_CONV INTEGER
);


CREATE TABLE CONVENIOS (
CONV_COD INTEGER NOT NULL,
CONV_NOME VARCHAR(60)
);


Quero buscar a quantidade de um convenio (CONV_COD), numa faixa de data (PAC_DATA_CAD), pois o (CONV_COD), so pode ser relacionado com (ATE_CONV), pois na tabela PACIENTES não tem referencia de (CONV_COD).

Fiz duas select, mas gostaria de ficar so com uma que fizesse o que as duas fazem.


// Essa abaixo faz o group by, dos convênios, contudo traz todos os atendimentos.

select convenios.conv_cod, convenios.conv_nome,
count(atendimentos.ate_conv) as Qtde
from atendimentos, convenios
where convenios.conv_cod = atendimentos.ate_conv
and atendimentos.ate_data between ´01.06.2006´ and ´30.06.2006´
group by convenios.conv_cod, convenios.conv_nome



// Essa abaixo traz somente um atendimento do paciente, contudo nao faz group by do convenio.

select distinct (a.pac_pront), b.ate_data, b.ate_conv
from pacientes a
join atendimentos b on a.pac_pront=b.ate_pront
where b.ate_pront = a.pac_pront
and b.ate_data = (select min(c.ate_data) from recadate c where b.ate_pront=c.ate_pront)
and a.pac_data_cad between ´01.06.2006´ and ´30.06.2006´


Altairmsouza

Altairmsouza

Curtidas 0
POSTAR