Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Subconsulta?

Estas en el tema de Subconsulta? en el foro de Bases de Datos General en Foros del Web. Tengo una tabla compuesta por elementos, REF y ELEM. REF puede estar compuesto por varios elementos, así, se muestran tantas lineas de REF iguales cómo ...
  #1 (permalink)  
Antiguo 21/09/2017, 09:34
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Pregunta Subconsulta?

Tengo una tabla compuesta por elementos, REF y ELEM.

REF puede estar compuesto por varios elementos, así, se muestran tantas lineas de REF iguales cómo elementos por los que este compuesto.

Tabla referencias
Código:
REF ELEM
A 0
B 1
B 2
C 3
D 4
E 5
F 6
F 9
F 7
Consulta realizada:

Código:
SELECT Ref FROM F_DATOS GROUP BY Ref  HAVING COUNT(*) < 2;
RESULTADO:
He conseguido visualizar las referencias que tienen un único elemento (que es lo que quiero) pero también me gustaría saber que elemento ELEM contiene esa referencia.
Código:
A
C
D
E
RESULTADO DESEADO:
Código:
A 0
C 3
D 4
E 5
He pensado en alguna subconsulta, pero no obtengo lo que se ejecute de manera correcta.

Gracias,
  #2 (permalink)  
Antiguo 21/09/2017, 09:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Subconsulta?

Algo asi creo que funcionaria


Código SQL:
Ver original
  1. SELECT t1.REF,t1.elem FROM F_datos AS t1
  2. LEFT JOIN(
  3. SELECT REF FROM F_DATOS GROUP BY REF  HAVING COUNT(*) < 2) AS t2 ON (t1.REF=t2.REF)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 21/09/2017, 09:52
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Respuesta: Subconsulta?

Cita:
Iniciado por Libras Ver Mensaje
Algo asi creo que funcionaria


Código SQL:
Ver original
  1. SELECT t1.REF,t1.elem FROM F_datos AS t1
  2. LEFT JOIN(
  3. SELECT REF FROM F_DATOS GROUP BY REF  HAVING COUNT(*) < 2) AS t2 ON (t1.REF=t2.REF)
No sé dónde puede estar el error, pero también muestra los elementos "B" y "F" y al estar compuestos por varios elementos B(1,2) F(6,9,7) no deseo que se muestren.

Gracias de todas maneras,
  #4 (permalink)  
Antiguo 21/09/2017, 10:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Subconsulta?

My fault:

Código SQL:
Ver original
  1. SELECT t1.REF,t1.elem FROM #temp AS t1
  2. LEFT JOIN(
  3. SELECT REF FROM #temp GROUP BY REF  HAVING COUNT(*) < 2) AS t2 ON (t1.REF=t2.REF)
  4. WHERE t2.REF IS NOT NULL

Se me paso quitar los null del left join o si usamos inner join:

Código SQL:
Ver original
  1. SELECT t1.REF,t1.elem FROM #temp AS t1
  2. INNER JOIN(
  3. SELECT REF FROM #temp GROUP BY REF  HAVING COUNT(*) < 2) AS t2 ON (t1.REF=t2.REF)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: sql, subconsulta, subquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:43.