Duda sobre una consulta

22/09/2009 - 20:14 por op.th | Informe spam
Buenas grupo. Tengo una consulta atragantada, resulta que tengo que
extraer unos registros de una sola tabla y según unas condiciones, por
ejemplo:

Nº - Usuario

1 VA
1 VB
2 VA
2 VA
3 VA
3 VB

De aquí tendría el resultado tendría que ser...



1
3

Como sería la consulta? con pivots tiene que ser o hay alguna manera de
montarla sin ellos.


Muchas gracias anticipadas.

Un saludo

Preguntas similare

Leer las respuestas

#1 Ruben Garrigos
22/09/2009 - 20:22 | Informe spam
Hola op.th

No queda claro que registros tienes que sacar. ¿Que significa ese 1 y el
3? Creo que tendrás que ser un poco más específico.

Recuerda añadir los script para generar los objetos para facilitar que podamos
ayudar...

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba


1
Respuesta Responder a este mensaje
#2 op.th
22/09/2009 - 20:42 | Informe spam
Tienes razón Rubén, pensaba que detallando el ejemplo quedaría claro,
mis disculpas por ser tan torpe. El 1 y el 3 es precisamente el dato que
me interesa extraer cuando hay más de un usuario. Aquí paso el script
con una posible solución...me gustaría saber si hay alguna opción más...

CREATE Table #Temporal (
codigo integer,
usuario varchar(10)
)
go

INSERT INTO #Temporal (codigo,usuario)
VALUES(1,'VA')
GO
INSERT INTO #Temporal (codigo,usuario)
VALUES(1,'VB')
GO
INSERT INTO #Temporal (codigo,usuario)
VALUES(2,'VA')
GO
INSERT INTO #Temporal (codigo,usuario)
VALUES(2,'VA')
GO
INSERT INTO #Temporal (codigo,usuario)
VALUES(3,'VA')
GO
INSERT INTO #Temporal (codigo,usuario)
VALUES(3,'VB')
GO
INSERT INTO #Temporal (codigo,usuario)
VALUES(3,'VB')
GO

SELECT Fact.Codigo FROM (
SELECT T.Codigo,T.Usuario,COUNT(*) AS Contador,
(SELECT COUNT(*) FROM #Temporal T1
WHERE T1.Codigo=T.Codigo) AS ContadorLineasFact
FROM #Temporal T
GROUP BY T.Codigo,T.Usuario) AS Fact
WHERE Fact.Contador<>Fact.ContadorLineasFact
GROUP BY Fact.Codigo
ORDER BY Fact.Codigo
go

Ruben Garrigos escribió:
Hola op.th

No queda claro que registros tienes que sacar. ¿Que significa ese 1 y el
3? Creo que tendrás que ser un poco más específico.

Recuerda añadir los script para generar los objetos para facilitar que
podamos ayudar...

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba


1




Respuesta Responder a este mensaje
#3 Noldis Chumacero
22/09/2009 - 20:55 | Informe spam
op.th,

Una alternativa sería:

SELECT C1
FROM ( SELECT DISTINCT * FROM Tabla ) AS Tabla1
GROUP BY C1
HAVING COUNT(*) = (SELECT COUNT(*) FROM (SELECT DISTINCT C2 FROM Tabla) AS
Tabla2)

Saludos

Noldis Chumacero
Santa Cruz de la Sierra - Bolivia
www.embalate.com

"op.th" <op.th.esNOSPAMgmail.com> escribió en el mensaje de
noticias:
Buenas grupo. Tengo una consulta atragantada, resulta que tengo que
extraer unos registros de una sola tabla y según unas condiciones, por
ejemplo:

Nº - Usuario

1 VA
1 VB
2 VA
2 VA
3 VA
3 VB

De aquí tendría el resultado tendría que ser...



1
3

Como sería la consulta? con pivots tiene que ser o hay alguna manera de
montarla sin ellos.


Muchas gracias anticipadas.

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida