2006/10/13

Duro de resolver con SQL

Va un lindo desafío para resolver con SQL puro.

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!)
La respuesta de Q2 debería ser ya que tienen exactamente los mismos ítems en inventario.

Les dejo para que piensen. Están buenos los planteamientos. Si alguien "popula" las tablas para probar, que pase los scripts! :-)

ASCQL.

2006/10/06

Monotonicity Notes from B561 class

Hello.

This are my notes on Professor Wyss' B561 lecture on monotonicity. I am publishing them here since there is no stuff about it in the text book.

Feel free to leave comments and I will review the document as suggested.