blob: 8cf7c78b06301c06fb5a9a873ae708a1ced093fc [file] [log] [blame]
ij> AUTOCOMMIT OFF;
ij> -- MODULE DML075
-- SQL Test Suite, V6.0, Interactive SQL, dml075.sql
-- 59-byte ID
-- TEd Version #
-- AUTHORIZATION HU
set schema HU;
0 rows inserted/updated/deleted
ij> --O SELECT USER FROM HU.ECCO;
VALUES USER;
1
--------------------------------------------------------------------------------------------------------------------------------
HU
ij> -- 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);
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E1 |Alice |12 |Deale
E2 |Betty |10 |Vienna
E3 |Carmen |13 |Vienna
E4 |Don |12 |Deale
ij> -- PASS:0431 If count = 4?
INSERT INTO STAFF1
SELECT * FROM STAFF;
5 rows inserted/updated/deleted
ij> --O SELECT COUNT (*) FROM STAFF1
SELECT * FROM STAFF1
WHERE EMPNUM IN
(SELECT EMPNUM FROM WORKS);
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E1 |Alice |12 |Deale
E2 |Betty |10 |Vienna
E3 |Carmen |13 |Vienna
E4 |Don |12 |Deale
ij> -- PASS:0431 If count = 4?
ROLLBACK WORK;
ij> -- END TEST >>> 0431 <<< END TEST
-- *************************************************************
-- TEST:0432 Unknown comparison predicate in ALL, SOME, ANY!
-- setup
UPDATE PROJ SET CITY = NULL
WHERE PNUM = 'P3';
1 row inserted/updated/deleted
ij> --OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY = ALL (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
ij> -- PASS:0432 If count = 0?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY <> ALL (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
ij> -- PASS:0432 If count = 0?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY = ANY (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E1 |Alice |12 |Deale
E4 |Don |12 |Deale
ij> -- PASS:0432 If count = 2?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY <> ANY (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E2 |Betty |10 |Vienna
E3 |Carmen |13 |Vienna
E5 |Ed |13 |Akron
ij> -- PASS:0432 If count = 3?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY = SOME (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E1 |Alice |12 |Deale
E4 |Don |12 |Deale
ij> -- PASS:0432 If count = 2?
--OSELECT COUNT(*)
SELECT *
FROM STAFF
WHERE CITY <> SOME (SELECT CITY
FROM PROJ
WHERE PNAME = 'SDP');
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E2 |Betty |10 |Vienna
E3 |Carmen |13 |Vienna
E5 |Ed |13 |Akron
ij> -- PASS:0432 If count = 3?
ROLLBACK WORK;
ij> -- 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');
PN&|PNAME |PTYPE |BUDGET |CITY
----------------------------------------------------------
P1 |MXSS |Design|10000 |Deale
P2 |CALM |Code |30000 |Vienna
P3 |SDP |Test |30000 |Tampa
P4 |SDP |Design|20000 |Deale
P5 |IRM |Test |10000 |Vienna
P6 |PAYR |Design|50000 |Deale
ij> -- PASS:0433 If count = 6?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM <> ALL (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
PN&|PNAME |PTYPE |BUDGET |CITY
----------------------------------------------------------
P1 |MXSS |Design|10000 |Deale
P2 |CALM |Code |30000 |Vienna
P3 |SDP |Test |30000 |Tampa
P4 |SDP |Design|20000 |Deale
P5 |IRM |Test |10000 |Vienna
P6 |PAYR |Design|50000 |Deale
ij> -- PASS:0433 If count = 6?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM = ANY (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
PN&|PNAME |PTYPE |BUDGET |CITY
----------------------------------------------------------
ij> -- PASS:0433 If count = 0?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM <> ANY (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
PN&|PNAME |PTYPE |BUDGET |CITY
----------------------------------------------------------
ij> -- PASS:0433 If count = 0?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM = SOME (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
PN&|PNAME |PTYPE |BUDGET |CITY
----------------------------------------------------------
ij> -- PASS:0433 If count = 0?
--O SELECT COUNT(*) FROM PROJ
SELECT * FROM PROJ
WHERE PNUM <> SOME (SELECT PNUM
FROM WORKS WHERE EMPNUM = 'E8');
PN&|PNAME |PTYPE |BUDGET |CITY
----------------------------------------------------------
ij> -- 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));
PN&|2
---------------
P1 |80
P5 |92
ij> -- 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;
PTYPE |CITY
----------------------
Code |Vienna
Design|Deale
Test |Tampa
ij> -- 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;
PTYPE |CITY
----------------------
Code |Vienna
Design|Deale
Test |Tampa
ij> -- 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;
1
-------------------
30000
80000
ij> -- 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
;
ij>