Fórum Nao consigo fazer Group By #57087
17/10/2006
0
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´
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)