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);