relacion de tablas
Publicado por zendi (132 intervenciones) el 22/10/2014 14:45:17
Buen dia a todos.
Estoy creando un query con 2 tablas:
esta es la paciente:
y esta es la de nombre consulta:
y este es el query:
yo hice la relacion por id_paciente cuando diseñé las tablas, pero la idea es que quiero hacer la busqueda por nrohistoria pero esta arrojando doble registro, cuando debiera traer un unico nro de historia.
¿acaso debo rediseñar las tablas con nrohistoria para cada tabla o las dejo tal como estan?
este es el resultado del query

Estoy creando un query con 2 tablas:
esta es la paciente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE paciente
(
nrohistoria integer NOT NULL,
nombre text NOT NULL,
direccion text,
telefono numeric,
fecha_nac date NOT NULL,
id_paciente serial NOT NULL,
cod_sanguineo integer NOT NULL,
cod_sexo integer,
CONSTRAINT paciente_pkey PRIMARY KEY (id_paciente),
CONSTRAINT paciente_cod_sanguineo_fkey FOREIGN KEY (cod_sanguineo)
REFERENCES gsanguineo (codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT paciente_cod_sexo_fkey FOREIGN KEY (cod_sexo)
REFERENCES sexo (codigo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE paciente OWNER TO postgres;
y esta es la de nombre consulta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CREATE TABLE consulta
(
id_consulta serial NOT NULL,
fecha date NOT NULL,
id_paciente serial NOT NULL,
peso numeric(5,2) NOT NULL,
talla numeric(5,2) NOT NULL,
circunfcefalica numeric(5,2) NOT NULL,
circunfbrazo numeric(5,2),
cod_hcm integer,
observacion text,
edad numeric,
hepatitisa boolean,
hepatitisb boolean,
polio boolean,
fiebreamarilla boolean,
difteriatetanos boolean,
varicela boolean,
meningitis boolean,
haemophilusinfluenza boolean,
sarampion boolean,
rubeola boolean,
parotiditis boolean,
vph boolean,
rotavirus boolean,
tuberculosis boolean,
CONSTRAINT consulta_pkey PRIMARY KEY (id_consulta),
CONSTRAINT consulta_cod_hcm_fkey FOREIGN KEY (cod_hcm)
REFERENCES hcm (codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT consulta_id_paciente_fkey FOREIGN KEY (id_paciente)
REFERENCES paciente (id_paciente) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT
)
WITHOUT OIDS;
ALTER TABLE consulta OWNER TO postgres;
y este es el query:
1
2
3
4
5
6
7
8
9
10
SELECT nrohistoria, lpad(CAST(nrohistoria AS TEXT), 4, '0') AS nrohistoria FROM paciente;,
nombre,
consulta.id_paciente,
consulta.fecha
FROM paciente,consulta
WHERE paciente.nrohistoria = 3
GROUP BY nrohistoria,
nombre, consulta.id_paciente,
consulta.fecha
yo hice la relacion por id_paciente cuando diseñé las tablas, pero la idea es que quiero hacer la busqueda por nrohistoria pero esta arrojando doble registro, cuando debiera traer un unico nro de historia.
¿acaso debo rediseñar las tablas con nrohistoria para cada tabla o las dejo tal como estan?
este es el resultado del query
Valora esta pregunta


0