SQL Server - Consulta SQL avanzada

 
Vista:

Consulta SQL avanzada

Publicado por Dante (2 intervenciones) el 03/02/2011 16:51:32
Saludos,

Lamento las molestias, pero querría pedir ayuda sobre una consulta que me trae de cabeza, por si hay alguna forma de hacerla que se me haya pasado por alto, pues mis conocimientos de SQL son algo básicos:

Tengo dos tablas, llamémoslas A y B. Solo señalaré los campos de importancia para la consulta en curso.

La tabla B está relacionada con la tabla A por un identificador único, que es la clave primaria de la tabla A (al que llamaré IdTablaA)

La tabla A tiene un campo que necesito supere un determinado valor (concretamente, que esté por encima de 1) (llamaremos a este campo CampoA).

Además (y aqui empieza la parte en que me pierdo) solo quiero que me muestre los datos de la tabla A que cumplan dos características en la tabla B:

1) Que más de un elemento de los que tenga vinculados en la tabla B cumplan que un determinado campo de B (al que llamaremos CampoB1) tengan un valor determinado (1). el problema es q no son todos los campos, ni uno solo, con que dos o mas de los casos cumplan ese valor, ya debe aparecer en la consulta.

2) Que además, todos los casos que cumplan la condición anterior cumplan además que un campo de B (al que llamaremos CampoB2) tengan también 1 en su valor.

Así pues, necesito una consulta de las tablas A y B en las que CampoA > 1 y cumplan que: 2 o mas casos de CampoB1 = 1 y CampoB2 = 1

Lamento las molestias, pero estoy completamente en blanco. Agradezco de antemano cualquier ayuda que podáis prestarme.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Consulta SQL avanzada

Publicado por Isaias (4558 intervenciones) el 03/02/2011 17:08:40
¿Y cual es el avance (codigo) que llevas de tu consulta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL avanzada

Publicado por Dante (2 intervenciones) el 03/02/2011 17:24:35
Poca cosa la verdad. No tengo problemas en que la consulta cumpla la primera condición, pero son las relativas a la segunda tabla las que me traen de cabeza:

Mas o menos vendría a ser algo asi lo que tengo de momento:

SELECT DISTINCT IdTablaA, NombreTablaA FROM A INNER JOIN B ON B.IdTablaA = A.idTablaA WHERE CampoA > 1

Los nombres de los campos y tablas son simulados no reales, pero se entiende mas o menos. En cuanto al resto del código, estoy bastante en blanco :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 43 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Consulta SQL avanzada

Publicado por Leonardo Josué (79 intervenciones) el 03/02/2011 17:55:31
Hola Dante:

Me perdí un poco en la explicación de tu problema, creo que sería más fácil que nos pusieras algunos datos de ejemplo, para poder visualizar mejor cómo son tus tablas y cómo debe funcionar tu salida.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL avanzada

Publicado por Loría (56 intervenciones) el 05/02/2011 00:42:35
Buenas tardes Dante.

Como los compañeros, pienso que necesitamos un poco más de datos para ayudarte.

Por el momento según comprendí, mirá haber si esto es lo que necesitas.

SELECT * FROM TableA
WHERE CampoA>1 AND idTablaA = ANY (
SELECT FKA FROM TableB
WHERE CampoB1=1 AND CampoB2=1
)

Utilize las siguientes tablas:

TableA:
idTablaA
CampoA

TableB:
idTablaB
FKA
CampoB1
CampoB2

Con los siguientes datos:
TableA:
1 1
2 2
3 2

TableB:
1 1 1 0
2 1 1 1
3 2 0 1
4 2 1 1
5 3 1 1
6 3 1 0
7 4 0 1
8 4 1 0

Dale una revisada y nos decís.

Saludos.

Loría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar