| Products | Versions |
|---|---|
| TIBCO Streaming | 7 |
I need some examples of SQL statements and how they can be used within a JDBC Query operator.
SELECT eq.*, ra.* FROM equities eq, ratings ra
WHERE eq.close_date={close_dt} and eq.symbol = ra.symbol
and eq.symbol in (SELECT symbol FROM ratings order by rating DESC limit 2);
because even though it is legal SQL, it raised the error in StreamBase:InvocationTargetException: Invalid SQL expression "SELECT eq.*, ra.* FROM equities eq, ratings ra WHERE eq.close_date=? and eq.symbol = ra.symbol and eq.symbol in (SELECT symbol FROM ratings order by rating DESC limit 2);": StreamBaseIllegalArgumentException: Field list has multiple fields named "symbol" java.lang.reflect.InvocationTargetException
SELECT eq.*, ra.symbol as rsymb, ra.rating FROM equities eq, ratings ra
WHERE eq.close_date={close_dt} and eq.symbol = ra.symbol
and eq.symbol in (SELECT symbol FROM ratings order by rating DESC limit 2);
CREATE TABLE equities
(
rid integer NOT NULL,
symbol character(10) NOT NULL,
close_date date,
close double precision,
volume integer,
CONSTRAINT rq_rid_pk PRIMARY KEY (rid)
);
CREATE INDEX eq_symbol_idx ON equities (close_date);
CREATE TABLE ratings
(
symbol character(10) NOT NULL,
rating integer,
CONSTRAINT symbol_ra PRIMARY KEY (symbol)
);
CREATE INDEX ratings_idx ON ratings (rating);
INSERT INTO equities VALUES
(1,'MSFT','03/02/2017',64.01,24510900),
(2,'MSFT','03/01/2017',64.94,26937500),
(3,'MSFT','02/28/2017',63.98,23239800),
(4,'MSFT','02/27/2017',64.23,15871500),
(5,'MSFT','02/24/2017',64.62,21796800),
(6,'MSFT','02/23/2017',64.62,20273100),
(7,'ORCL','03/02/2017',42.89,9418200),
(8,'ORCL','03/01/2017',42.92,11402200),
(9,'ORCL','02/28/2017',42.59,14450300),
(10,'ORCL','02/27/2017',42.7,13876500),
(11,'ORCL','02/24/2017',43.17,11426700),
(12,'ORCL','02/23/2017',42.96,15484000),
(13,'AAPL','03/02/2017',138.96,26153300),
(14,'AAPL','03/01/2017',139.79,36414600),
(15,'AAPL','02/28/2017',136.99,23482900),
(16,'AAPL','02/27/2017',136.93,20257400),
(17,'AAPL','02/24/2017',136.66,21776600),
(18,'AAPL','02/23/2017',136.53,20788200),
(19,'QCOM','03/02/2017',56.37,8415600),
(20,'QCOM','03/01/2017',57.01,11082400),
(21,'QCOM','02/28/2017',56.48,10388200),
(22,'QCOM','02/27/2017',56.73,7127600),
(23,'QCOM','02/24/2017',57.22,10644800),
(24,'QCOM','02/23/2017',57.14,10152800);
INSERT INTO ratings VALUES ('MSFT',4),('AAPL',5),('ORCL',3),('QCOM',3);
UPDATE equities SET close = 64.90 WHERE symbol = 'MSFT' and close_date='03/01/2017';
SELECT * from equities where symbol='MSFT' ORDER BY close_date;
SELECT eq.symbol, eq.close, ra.rating from equities eq, ratings ra where eq.close_date='03/02/2017' and eq.symbol=ra.symbol;
SELECT eq.symbol, eq.close, ra.rating from equities eq, ratings ra where eq.close_date={close_dt} and eq.symbol=ra.symbol;
SELECT eq.*, ra.symbol as rsymb, ra.rating FROM equities eq, ratings ra WHERE eq.close_date={close_dt} and eq.symbol = ra.symbol and eq.symbol in (SELECT symbol FROM ratings order by rating DESC limit 2);