--************************************************************************************
-- Alle CPUs und sonstigen Waren 
--************************************************************************************

SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
UNION
SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'Sonstiges'
;

-- Da beide Anfragen auf dieselbe Tabelle zugreifen, kann auch der
-- OR-Operator verwendet werden. 

SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU' OR w.typ = 'Sonstiges'
;


SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
UNION ALL
SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
;

SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
UNION -- DISTINCT -- funktioniert in Virtuoso nicht
SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
;

SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
UNION
SELECT * FROM KOWA.Haendler.ware w WHERE w.typ = 'CPU'
;


--************************************************************************************
-- Alle Haendler deren Name nicht mit 'M' anfängt.
--************************************************************************************

SELECT * FROM KOWA.Haendler.haendler
EXCEPT
SELECT * FROM KOWA.Haendler.haendler h WHERE h.name like 'M%'
;

-- Da beide Anfragen auf dieselbe Tabelle zugreifen, kann auch der
-- NOT-Operator verwendet werden. 

SELECT * FROM KOWA.Haendler.haendler h WHERE NOT h.name like 'M%'
;


--************************************************************************************
-- Alle Haendler die 'Maier' heißen und in 'Köngisbrunn' wohnen.
--************************************************************************************

SELECT * FROM KOWA.Haendler.haendler h WHERE h.name = 'Maier'
INTERSECT
SELECT * FROM KOWA.Haendler.haendler h WHERE h.adresse = 'Königsbrunn'
;

-- Da beide Anfragen auf dieselbe Tabelle zugreifen, kann auch der
-- AND-Operator verwendet werden. 
 
SELECT * FROM KOWA.Haendler.haendler h WHERE h.name = 'Maier' AND h.adresse = 'Königsbrunn'
;


--************************************************************************************
-- Sonstiges
--************************************************************************************

-- funktioniert in Virtuoso
SELECT * FROM KOWA.Haendler.ware 
UNION ALL CORRESPONDING BY (typ)
SELECT * FROM KOWA.Haendler.ware
;

-- funktioniert in Virtuoso nicht
-- SELECT * FROM KOWA.Haendler.ware 
-- UNION ALL CORRESPONDING
-- SELECT * FROM KOWA.Haendler.ware
;

