blob: 6f0fd05543985d37f08a7614253a33db9ca72dcd [file] [log] [blame]
AUTOCOMMIT OFF;
-- MODULE DML075
-- SQL Test Suite, V6.0, Interactive SQL, dml075.sql
-- 59-byte ID
-- TEd Version #
-- AUTHORIZATION HU
set schema HU;
--O SELECT USER FROM HU.ECCO;
VALUES USER;
-- RERUN if USER value does not match preceding AUTHORIZATION comment
-- date_time print
-- TEST:0431 Redundant rows in IN subquery!
--O SELECT COUNT (*) FROM STAFF
SELECT * FROM STAFF
WHERE EMPNUM IN
(SELECT EMPNUM FROM WORKS);
-- PASS:0431 If count = 4?
INSERT INTO STAFF1
SELECT * FROM STAFF;
--O SELECT COUNT (*) FROM STAFF1
SELECT * FROM STAFF1
WHERE EMPNUM IN
(SELECT EMPNUM FROM WORKS);
-- PASS:0431 If count = 4?
ROLLBACK WORK;
-- END TEST >>> 0431 <<< END TEST
-- *************************************************************
-- TEST:0432 Unknown comparison predicate in ALL, SOME, ANY!
-- setup
UPDATE PROJ SET CITY = NULL
WHERE PNUM = 'P3';
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY = ALL (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
-- PASS:0432 If count = 0?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY <> ALL (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
-- PASS:0432 If count = 0?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY = ANY (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
-- PASS:0432 If count = 2?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY <> ANY (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
-- PASS:0432 If count = 3?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY = SOME (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
-- PASS:0432 If count = 2?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY <> SOME (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
-- PASS:0432 If count = 3?
ROLLBACK WORK;
-- END TEST >>> 0432 <<< END TEST
-- *************************************************************
-- TEST:0433 Empty subquery in ALL, SOME, ANY!
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM = ALL (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 6?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM <> ALL (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 6?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM = ANY (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM <> ANY (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM = SOME (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM <> SOME (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?
-- END TEST >>> 0433 <<< END TEST
-- *************************************************************
-- TEST:0434 GROUP BY with HAVING EXISTS-correlated set function!
SELECT PNUM, SUM(HOURS) FROM WORKS c
GROUP BY PNUM
--O HAVING EXISTS (SELECT PNAME FROM PROJ
--O WHERE PROJ.PNUM = WORKS.PNUM AND
HAVING EXISTS (SELECT PNAME FROM PROJ, works a
WHERE PROJ.PNUM = a.PNUM AND
--O SUM(WORKS.HOURS) > PROJ.BUDGET / 200);
PROJ.BUDGET / 200 < (select sum(hours) from works b
where a.pnum = b.pnum
and a.pnum = c.pnum));
-- PASS:0434 If 2 rows selected with values (in any order):?
-- PASS:0434 PNUM = 'P1', SUM(HOURS) = 80?
-- PASS:0434 PNUM = 'P5', SUM(HOURS) = 92?
-- END TEST >>> 0434 <<< END TEST
-- *************************************************************
-- TEST:0442 DISTINCT with GROUP BY, HAVING!
SELECT PTYPE, CITY FROM PROJ
GROUP BY PTYPE, CITY
HAVING AVG(BUDGET) > 21000;
-- PASS:0442 If 3 rows selected with PTYPE/CITY values(in any order):?
-- PASS:0442 Code/Vienna, Design/Deale, Test/Tampa?
SELECT DISTINCT PTYPE, CITY FROM PROJ
GROUP BY PTYPE, CITY
HAVING AVG(BUDGET) > 21000;
-- PASS:0442 If 3 rows selected with PTYPE/CITY values(in any order):?
-- PASS:0442 Code/Vienna, Design/Deale, Test/Tampa?
SELECT DISTINCT SUM(BUDGET) FROM PROJ
GROUP BY PTYPE, CITY
HAVING AVG(BUDGET) > 21000;
-- PASS:0442 If 2 rows selected (in any order):?
-- PASS:0442 with SUM(BUDGET) values 30000 and 80000?
-- END TEST >>> 0442 <<< END TEST
-- *************************************************////END-OF-MODULE