Ayer ya les estuve rompiendo las bolas con esto. Formalizo un poco más el tema:
Sean estas cuatro "tabelas":
CREATE TABLE "PSANTACR"."ITEM"
( "IID" NUMBER,
"NAME" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"CATEGORY" VARCHAR2(20 BYTE) NOT NULL ENABLE,
"DESCRIPTION" VARCHAR2(100 BYTE) NOT NULL ENABLE,
PRIMARY KEY ("IID") ENABLE
) ;
CREATE TABLE "PSANTACR"."INVENTORY"
( "SID" NUMBER,
"IID" NUMBER,
"QTY" NUMBER NOT NULL ENABLE,
PRIMARY KEY ("SID", "IID") ENABLE,
FOREIGN KEY ("SID")
REFERENCES "PSANTACR"."SUPPLIER" ("SID") ENABLE,
FOREIGN KEY ("IID")
REFERENCES "PSANTACR"."ITEM" ("IID") ENABLE
) ;
CREATE TABLE "PSANTACR"."SUPPLIER"
( "SID" NUMBER,
"NAME" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"ADDRESS" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"PHONE" VARCHAR2(100 BYTE) NOT NULL ENABLE,
PRIMARY KEY ("SID") ENABLE
) ;
CREATE TABLE "PSANTACR"."PRICELIST"
( "SID" NUMBER,
"IID" NUMBER,
"PRICEPERITEM" NUMBER NOT NULL ENABLE,
PRIMARY KEY ("SID", "IID") ENABLE,
FOREIGN KEY ("SID")
REFERENCES "PSANTACR"."SUPPLIER" ("SID") ENABLE,
FOREIGN KEY ("IID")
REFERENCES "PSANTACR"."ITEM" ("IID") ENABLE
) ;
El tema es, redactar los siguientes dos queries con SQL (no PL/SQL, TransactSQL, ni nada por el estilo).
1) Encontrar el/los proveedores que ofrecen los mejores precios (en promedio) para productos en cada categoría. La respuesta tiene que ser una relación formada por tuplas
2) Encontrar los pares de proveedores que tienen en inventario EXACTAMENTE los mismos ítems sin tener en cuenta la cantidad.
Va un ejemplo para explicar mejor el Q2 (Q2 es mi amiiiiigo!)
Les dejo para que piensen. Están buenos los planteamientos. Si alguien "popula" las tablas para probar, que pase los scripts! :-)
ASCQL.