Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2006
jalejandro0211 jalejandro0211 is offline
Registrado
 
Registrado: nov 2006
Posts: 2
Poder: 0
jalejandro0211 Va por buen camino
Ayuda con Sql Sentencia (unir dos select)

Hola, tengo la siguiente duda:

en este select


Código SQL [-]
select cedula, count(cedula) as cont from matrix_odontograma group by cedula having cont = 3
retorna:
111111, 3
222222, 3
333333, 3
444444, 3
555555, 5

en este otro:

Código SQL [-]
select matrix_odontograma.cedula as cedula, primer_nombre as nombre, primer_apellido as apellido, genero as genero, fecha_nacimiento as fechanacimiento from matrix_odontograma, pacientes where (matrix_odontograma.cedula = pacientes.cedula) and (iddientes = 1 and superficie = 1 and nombre_enfermedad = 'caries' or iddientes = 2 and superficie = 6 and nombre_enfermedad = 'ppr' or iddientes = 3 and superficie = 6 and nombre_enfermedad = 'extraido' ) group by cedula having count(matrix_odontograma.cedula) between 3 and 3

retorna

666666
333333
555555
222222
777777

necesito un select completo donde uniendo estos 2 anteriores no se si es con join, inner join, subselect, o algo, para q me retorne los valres que se repitieron en ambos selec es decir


222222
333333
555555

(the values that have the first select and second select)

grcias por su ayuda...

Última edición por jalejandro0211 fecha: 20-11-2006 a las 01:17:04.
Responder Con Cita
  #2  
Antiguo 20-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola jalejandro0211, antetodo, bienvenido al ClubDelphi.
Segundo, leete la Guía de Estilo, por favor.
- No escribas en mayúsculas.
- Usas las etiquetas de código y SQL
- Y pon títulos más descriptivos a los hilos.

Saludos y nuevamente bienvenido a los foros.
Responder Con Cita
  #3  
Antiguo 21-11-2006
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Prueba con :
Código SQL [-]
select matrix_odontograma.cedula as cedula, primer_nombre as nombre, primer_apellido as apellido, genero as genero, 
       fecha_nacimiento as fechanacimiento  
from matrix_odontograma, pacientes  
where (matrix_odontograma.cedula = pacientes.cedula) and (iddientes = 1 and superficie = 1 and 
      nombre_enfermedad = 'caries' or iddientes = 2 and superficie = 6 and nombre_enfermedad = 'ppr' or iddientes = 3 and superficie = 6 and nombre_enfermedad = 'extraido' )        
      and matrix_odontograma.cedula in (select cedula, count(cedula) as cont 
                                        from matrix_odontograma                                          
                                        group by cedula having cont = 3)
group by cedula 
having count(matrix_odontograma.cedula) between 3 and 3
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #4  
Antiguo 21-11-2006
jalejandro0211 jalejandro0211 is offline
Registrado
 
Registrado: nov 2006
Posts: 2
Poder: 0
jalejandro0211 Va por buen camino
Sentencia Correcta

Gracias a todos por las respuestas, me funciono con:

You need a simple join:

Código SQL [-]
Select Tbl1.Cedula
From
(SELECT CEDULA, COUNT(CEDULA) AS CONT 
FROM MATRIX_ODONTOGRAMA 
GROUP BY CEDULA HAVING CONT = 3) as Tbl1
Join
(SELECT matrix_odontograma.cedula as Cedula, primer_nombre as Nombre,
primer_apellido as Apellido, genero as Genero, 
fecha_nacimiento as FechaNacimiento 
FROM matrix_odontograma, pacientes 
where (matrix_odontograma.cedula = pacientes.cedula) AND
(idDientes = 1 AND Superficie = 1 AND nombre_enfermedad = 'Caries'
or idDientes = 2 AND Superficie = 6 AND nombre_enfermedad = 'PPR' 
or idDientes = 3 AND Superficie = 6 AND nombre_enfermedad = 'Extraido' ) 
group by cedula 
having count(matrix_odontograma.cedula) between 3 and 3) as tbl2
on tbl1.Cedula = tbl2.Cedula
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con sentencia IF en SQL Coco_jac SQL 11 14-09-2006 01:03:55
Uso de IN en una sentencia SQL gaby_stars SQL 7 03-09-2006 09:41:21
sentencia que no termina de ir ... chelejuan SQL 2 25-01-2005 19:50:44
Sentencia SUM geovany SQL 2 29-10-2004 23:52:24
sentencia sql??? empty SQL 3 07-04-2004 11:01:32


La franja horaria es GMT +2. Ahora son las 13:11:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi