/**************************************************************************************/
/* File:        demo01                                                                */
/* Project:     ATSQL2 : UNION, INTERSECT, EXCEPT                                     */
/* Author:      Andreas Steiner                                                       */
/* Date:        19-06-1995                                                            */
/* Results:                                                                           */
/**************************************************************************************/

SET CALENDRIC SYSTEM fiscal;

CREATE TABLE p(X integer) AS VALID;
CREATE TABLE q(X integer) AS VALID;
CREATE TABLE s(X integer, Y integer) AS VALID;

NONSEQUENCED VALID PERIOD '1981-1985' INSERT INTO p VALUES (1);
NONSEQUENCED VALID PERIOD '1983-1987' INSERT INTO p VALUES (1);
NONSEQUENCED VALID PERIOD '1983-1987' INSERT INTO p VALUES (2);
NONSEQUENCED VALID PERIOD '1982-1988' INSERT INTO p VALUES (3);

NONSEQUENCED VALID PERIOD '1982-1985' INSERT INTO q VALUES (1);
NONSEQUENCED VALID PERIOD '1983-1987' INSERT INTO q VALUES (3);

NONSEQUENCED VALID PERIOD '1982-1984' INSERT INTO s VALUES (3, 3);


NONSEQUENCED VALID
  SELECT *
  FROM   p;
  

VALID 
  SELECT *
  FROM   p;

VALID
  (SELECT *
   FROM   p) (PERIOD);


VALID
   SELECT *
   FROM   p
  UNION
   SELECT *
   FROM   q;


VALID
  (SELECT *
   FROM   p
  UNION
   SELECT *
   FROM   q) (PERIOD);


VALID
   (SELECT *
    FROM   p) (PERIOD)
  UNION
   ((SELECT *
     FROM   q
   EXCEPT
     SELECT X
     FROM   s) (PERIOD));


VALID
  ( SELECT *
    FROM   p
  UNION
   (SELECT *
    FROM   q
   EXCEPT
    SELECT X
    FROM   s)) (PERIOD);


VALID
   SELECT *
   FROM   p
  INTERSECT
   (SELECT *
    FROM   q
   EXCEPT
    SELECT X
    FROM   s);


NONSEQUENCED VALID
 (SELECT *
  FROM   p
 INTERSECT
  (SELECT *
   FROM   q
  EXCEPT
   SELECT X
   FROM   s));


NONSEQUENCED VALID PERIOD 'beginning-forever'
  SELECT *
  FROM   p
 INTERSECT
  (SELECT *
   FROM   q
  EXCEPT
   SELECT X
   FROM   s);


NONSEQUENCED VALID PERIOD '1990-1994'
  SELECT *
  FROM   p
 INTERSECT
  (SELECT *
   FROM   q
  EXCEPT
   SELECT X
   FROM   s);


NONSEQUENCED VALID
 (SELECT *
  FROM   p
 INTERSECT
  (SELECT *
   FROM   q
  EXCEPT
   SELECT X
   FROM   s)) (PERIOD);


NONSEQUENCED VALID PERIOD 'beginning-forever'
 (SELECT *
  FROM   p
 INTERSECT
  (SELECT *
   FROM   q
  EXCEPT
   SELECT X
   FROM   s)) (PERIOD);


NONSEQUENCED VALID PERIOD '1990-1994'
 (SELECT *
  FROM   p
 INTERSECT
  (SELECT *
   FROM   q
  EXCEPT
   SELECT X
   FROM   s)) (PERIOD);


VALID
   (SELECT *
    FROM   p) (PERIOD)
   EXCEPT
   (SELECT *
    FROM q) (PERIOD);


VALID
  (SELECT *
   FROM   p
  EXCEPT
   SELECT *
   FROM q) (PERIOD);


VALID
     (SELECT * FROM p) (PERIOD)
  INTERSECT
     (SELECT * FROM q)(PERIOD);


VALID
   (SELECT * FROM p
  INTERSECT
   SELECT * FROM q) 
 (PERIOD);


DROP TABLE p;
DROP TABLE q;
DROP TABLE s;
