Código SQL:
Ver originalCREATE TABLE #Seccion (
Codigo_Seccion INT NOT NULL,
Nombre VARCHAR(45))
INSERT INTO #seccion VALUES (1,'Seccion1')
INSERT INTO #seccion VALUES (2,'Seccion1')
INSERT INTO #seccion VALUES (3,'Seccion1')
INSERT INTO #seccion VALUES (4,'Seccion1')
INSERT INTO #seccion VALUES (5,'Seccion1')
INSERT INTO #seccion VALUES (6,'Seccion1')
CREATE TABLE #Articulo (
Codigo_Articulo INT NOT NULL ,
Codigo_Seccion INT NOT NULL,
Nombre VARCHAR(45))
INSERT INTO #articulo VALUES (1,1,'Art1')
INSERT INTO #articulo VALUES (2,1,'Art1')
INSERT INTO #articulo VALUES (3,1,'Art1')
INSERT INTO #articulo VALUES (2,2,'Art2')
INSERT INTO #articulo VALUES (7,2,'Art2')
INSERT INTO #articulo VALUES (3,3,'Art3')
INSERT INTO #articulo VALUES (8,3,'Art3')
INSERT INTO #articulo VALUES (4,4,'Art4')
INSERT INTO #articulo VALUES (9,4,'Art4')
INSERT INTO #articulo VALUES (5,5,'Art5')
INSERT INTO #articulo VALUES (10,5,'Art5')
INSERT INTO #articulo VALUES (6,6,'Art6')
INSERT INTO #articulo VALUES (11,6,'Art6')
CREATE TABLE #Pedido (
ID_Pedido INT NOT NULL,
Codigo_Articulo INT NOT NULL ,
DNI_Cliente VARCHAR(16) NOT NULL)
INSERT INTO #pedido VALUES (1,1,'11234')
INSERT INTO #pedido VALUES (2,2,'11234')
INSERT INTO #pedido VALUES (3,3,'11234')
INSERT INTO #pedido VALUES (4,4,'11234')
INSERT INTO #pedido VALUES (5,5,'11234')
INSERT INTO #pedido VALUES (6,5,'11234')
INSERT INTO #pedido VALUES (7,1,'11234')
INSERT INTO #pedido VALUES (1,1,'11235')
INSERT INTO #pedido VALUES (1,2,'11235')
INSERT INTO #pedido VALUES (1,3,'11235')
INSERT INTO #pedido VALUES (1,3,'11235')
INSERT INTO #pedido VALUES (1,3,'11235')
INSERT INTO #pedido VALUES (1,4,'11235')
INSERT INTO #pedido VALUES (1,5,'11235')
INSERT INTO #pedido VALUES (1,6,'11235')
CREATE TABLE #Cliente (
DNI_Cliente VARCHAR(45) NOT NULL ,
Nombre VARCHAR(45) )
INSERT INTO #cliente VALUES ('1234','Libras')
INSERT INTO #cliente VALUES ('12345','Libras1')
SELECT * FROM(
SELECT dni_cliente,Codigo_Seccion, COUNT(codigo_seccion) AS total FROM(
SELECT DISTINCT DNI_Cliente,Codigo_Seccion,t2.Codigo_Articulo FROM #pedido AS t1
LEFT JOIN #Articulo AS t2 ON (t1.Codigo_Articulo=t2.Codigo_Articulo)
) AS t3
GROUP BY Codigo_Seccion,DNI_Cliente
) AS t4
LEFT JOIN (SELECT COUNT(*) total, Codigo_Seccion FROM #articulo GROUP BY codigo_seccion) AS t5 ON (t4.total=t5.total AND t4.Codigo_Seccion=t5.Codigo_Seccion)
WHERE t5.total IS NOT NULL AND t5.Codigo_Seccion IS NOT NULL
si vemos los datos los 2 usuarios han comprado los 3 productos de la seccion 1, pero ninguno ha comprado los 2 productos de las demas secciones por lo que solo aparecerian los datos de la seccion1
dni_cliente Codigo_Seccion total total Codigo_Seccion
11234 1 3 3 1
11235 1 3 3 1
La consulta no es "tan sencilla" como te han dicho, si fuera tan sencilla porque nada mas yo te estoy poniendo queries ;)