rambo189619 icon

Untitled

rambo189619 | PRO | 12/04/12 02:50:11 AM UTC | 0 ⭐ | 183 👁️ | Never ⏰ | []
SQL |

1.9 KB

|

None

|

0 👍

/

0 👎

DROP TABLE IF EXISTS productos,proveedores,suministra cascade;
 
CREATE TABLE productos(
   id       INTEGER ,
   color    CHAR(10),
   PRIMARY KEY(id,color)
   );
   
   CREATE TABLE proveedor(
   id       INTEGER PRIMARY KEY,
   nombre   CHAR(20)
   
);
 
CREATE TABLE suministra(
   id       INTEGER PRIMARY KEY,
   id_producto  INTEGER REFERENCES productos,
   id_proveedor INTEGER REFERENCES proveedor,
   color    CHAR(10) REFERENCES productos,
   cantidad     INTEGER
);
INSERT INTO productos VALUES 
(001,'Rosa'),
(001,'Verde'),
(002,'Rojo');
 
INSERT INTO proveedor VALUES 
(001,'Paco-Regalos'),
(002,'Carlos&Cia'),
(003,'Chinatown');
 
INSERT INTO suministra VALUES 
(1,001,001,'Verde'),
(2,001,002,'Rojo'),
(3,002,001,'Verde'),
(4,002,001,'Rojo');
 
--Ejercicio 4
 
--1
SELECT producto.id, proveedor.id FROM suministra
GROUP BY producto.id,proveedor.id
HAVING COUNT(*)=(SELECT COUNT(*) FROM proveedores);
 
--2
SELECT producto.id, proveedor.id FROM suministra
GROUP BY producto.id,proveedor.id
HAVING COUNT(*)=(SELECT COUNT(*) FROM suministra);
 
--3
SELECT proveedor.id, producto.id FROM suministra NATURAL JOIN proveedores
GROUP BY producto.id,proveedor.id
HAVING COUNT(*)=(SELECT COUNT(*) FROM productos);
 
--4
SELECT proveedor.id, producto.id FROM suministra NATURAL JOIN proveedores
GROUP BY producto.id,proveedor.id
HAVING COUNT(*)=(SELECT COUNT(*) FROM productos
            WHERE color='Rojo');
 
--5
SELECT id,color FROM productos 
GROUP BY id,color
HAVING COUNT(*)=(SELECT COUNT(*) FROM productos);
 
--6
SELECT proveedor.id,nombre,producto.id,color
FROM proveedor INNER JOIN suministra ON (id=id_proveedor)
GROUP BY proveedor.id,nombre,producto.id,color
HAVING COUNT(*)=(SELECT id,color
        FROM productos
        WHERE id=1 );
 
/* Porque no puede existir un producto con un mismo color en varios proveedores */
 
--7
SELECT proveedor.id,nombre,producto.id,color
FROM proveedor INNER JOIN suministra ON (id=id_proveedor)
HAVING COUNT(*)=(SELECT id,color FROM productos);

Comments