Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2015, 05:00
freakgod
 
Fecha de Ingreso: abril-2015
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
unir dos consultas

EDITO: Estoy usando PostgreSQL, he visto tarde que havia una subcarpeta.

Hola a todos, soy novato en el mundo de sql y estoy teniendo algunos problemas para hacer una consulta, la cuestión és que es una consulta algo compleja y haciendo dos por separado me funcionan pero si intento unirlas no lo consigo.
Código:
SELECT d.City, d.Name
FROM DOCTOR d, VISIT v
WHERE d.Specialty = 'Medicina familiar i comunitària' 
ORDER BY d.Name;

SELECT * FROM VISIT
WHERE DATE (Visit_Date)<'01/01/2012' 
            OR DATE(Visit_Date)>'31/12/2013';
Estas són las 2 consultas que quiero unir, he provado varios metodos como:
Código:
SELECT City, Name
FROM DOCTOR d
WHERE d.Specialty = 'Medicina familiar i comunitària' 
      AND NOT IN(SELECT *
		FROM VISIT 
		WHERE Visit_Date BETWEEN '2012-01-01' and '2013-12-31')
ORDER BY d.Name;
Y muchas otras cosas pero nunca consigo que me salga lo que necessito.

Lo que debe hacer la consulta es darme los nombres y ciudades (de la tabla Doctor) de los medicos de medicina familiar que no hicieron ninguna visita entre 2012 y 2013, lo de las vistias está en la tabla VISIT, alguien puede hecharme una mano?

Gracias

EDITO2: Gracias por mover el post en la carpeta correcta, aprovecho para preguntar otra cosita, tengo otra consulta con este codigo:

Código:
SELECT p.name, p.address, p.city, sum(v.price) as total
FROM VISIT v join PATIENT p on  p.Pat_Number = v.Pat_Number
where Date(Visit_Date)<'01/01/2012'      
group by p.name, p.address, p.city, p.Pat_Number, v.Pat_Number
order by total DESC;
pero me faltaria que solo mostrase las filas con sum(v.price) sean superiores a 1000, el problema es que si pongo esta condicion en el where me dice que no se puden poner funciones de agregacion allí, y si pongo total>1000 me dice que total no existe ¿cómo pudeo solucionar esto?

Saludos y gracias otra vez.

Última edición por freakgod; 11/04/2015 a las 06:35