SELECT f.exch
FROM (
SELECT
CASE
WHEN sourcedesk IN ('GOBUS_NY',
'GOBUS_UK',
'PETRDAES',
'PEETRAD') THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity*executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND exchange = 'VEX'
AND sourceservicename LIKE 'vexprod%'
AND securityid LIKE '%.%'
UNION ALL
SELECT
CASE
WHEN sourcedesk IN ('GOBUS_NY',
'GOBUS_UK',
'PETRDAES',
'PEETRAD',
'VEXSVC',
'LLSOR') THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity*executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND sourceservicename IN ('SORUK',
'PRODSorBkFlr',
'PRODFixBkFlr',
'PRODFixBkFlr1',
'PRODFixBkFlr2',
'PRODSmgBkFlr',
'ECGaia2Agora')
AND owner NOT LIKE 'tree%'
AND securityid LIKE '%.%'
UNION ALL
SELECT
CASE
WHEN sourcedesk IN ('GOBUS_NY',
'GOBUS_UK',
'PETRDAES',
'PEETRAD',
'VEXSVC',
'LLSOR') THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity*executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND securityid LIKE '%.%'
AND exchange = 'BENCHMKX'
AND sourceservicename LIKE 'BENCHM_%'
UNION ALL
SELECT
CASE
WHEN sourcedesk IN ('GOBUS_NY',
'GOBUS_UK',
'PETRDAES',
'PEETRAD',
'VEXSVC',
'LLSOR') THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity*executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND sourceservicename = 'ECGaia2Agora'
AND owner NOT LIKE 'tree%'
AND exchange IN ('BATS',
'CHIX')
AND reasoncode = 'NT'
AND side = 'B'
UNION ALL
SELECT
CASE
WHEN sourcedesk IN ('GOBUS_NY',
'GOBUS_UK',
'PETRDAES',
'PEETRAD',
'VEXSVC',
'LLSOR') THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity*executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND sourceservicename LIKE 'tars_%' ) AS f,
(
SELECT orderid AS gaotag,
serverid AS srvid,
securityidasentered AS enteredsym,
securityid AS sym,
rootorderid AS rgaotag,
timeinforce AS tif,
settletype AS settletype,
sourceservicename AS appl,
account AS acct
FROM ordersastextdatestring
WHERE agoralocaltradedate = '190205'
AND destinationdesk IN ('BENCHX',
'VEXSVC',
'SORMKT',
'MAIA',
'LLSOR',
'TARSSVC')) AS o,
where f.gaotag = o.gaotag
以上查询失败,并在impala中出现以下错误:
AnalysisException:第4行中的语法错误:未定义:其中f.gaotag = o.gaotag ^遇到:预期位置:默认,标识符,原因:异常:语法错误
我通过了以下cloudera链接: https://www.cloudera.com/documentation/enterprise/5-4-x/topics/impala_subqueries.html,但无法完成这项工作。
我是Sybase IQ和Imapala的新手。
答案 0 :(得分:0)
您能否尝试用以下查询替换最后一个查询并尝试运行它-
SELECT f.exch
FROM (SELECT CASE
WHEN sourcedesk IN ( 'GOBUS_NY', 'GOBUS_UK', 'PETRDAES',
'PEETRAD' )
THEN
clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity * executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND exchange = 'VEX'
AND sourceservicename LIKE 'vexprod%'
AND securityid LIKE '%.%'
UNION ALL
SELECT CASE
WHEN sourcedesk IN ( 'GOBUS_NY', 'GOBUS_UK', 'PETRDAES',
'PEETRAD',
'VEXSVC', 'LLSOR' ) THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity * executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND sourceservicename IN ( 'SORUK', 'PRODSorBkFlr',
'PRODFixBkFlr',
'PRODFixBkFlr1',
'PRODFixBkFlr2', 'PRODSmgBkFlr',
'ECGaia2Agora' )
AND owner NOT LIKE 'tree%'
AND securityid LIKE '%.%'
UNION ALL
SELECT CASE
WHEN sourcedesk IN ( 'GOBUS_NY', 'GOBUS_UK', 'PETRDAES',
'PEETRAD',
'VEXSVC', 'LLSOR' ) THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity * executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND securityid LIKE '%.%'
AND exchange = 'BENCHMKX'
AND sourceservicename LIKE 'BENCHM_%'
UNION ALL
SELECT CASE
WHEN sourcedesk IN ( 'GOBUS_NY', 'GOBUS_UK', 'PETRDAES',
'PEETRAD',
'VEXSVC', 'LLSOR' ) THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity * executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND sourceservicename = 'ECGaia2Agora'
AND owner NOT LIKE 'tree%'
AND exchange IN ( 'BATS', 'CHIX' )
AND reasoncode = 'NT'
AND side = 'B'
UNION ALL
SELECT CASE
WHEN sourcedesk IN ( 'GOBUS_NY', 'GOBUS_UK', 'PETRDAES',
'PEETRAD',
'VEXSVC', 'LLSOR' ) THEN clientid
WHEN sourcedesk = 'AESLDN'
AND clientid != '' THEN clientid
ELSE owner
END AS aclient,
clientid AS client,
orderid AS gaotag,
exchange AS exch,
side AS side,
securityid AS sym,
cumulativequantity * executionprice AS value,
cumulativequantity AS qdone,
fillid AS gaftag,
executionexchangetimestamplcl AS xstamp,
executionprice AS lprice,
executionexchangeid AS xftag,
serverid AS srvid,
reasoncode AS rescode,
rootfillid AS rgaftag,
miccode AS miccode,
mifidtradeflags AS mifidtradeflags,
sourcedesk AS desk
FROM fillsastextdatestring
WHERE agoralocaltradedate = '190205'
AND sourceservicename LIKE 'tars_%') AS f
INNER JOIN (SELECT orderid AS gaotag,
serverid AS srvid,
securityidasentered AS enteredsym,
securityid AS sym,
rootorderid AS rgaotag,
timeinforce AS tif,
settletype AS settletype,
sourceservicename AS appl,
account AS acct
FROM ordersastextdatestring
WHERE agoralocaltradedate = '190205'
AND destinationdesk IN ( 'BENCHX', 'VEXSVC', 'SORMKT',
'MAIA'
,
'LLSOR', 'TARSSVC' )) o
ON f.gaotag = o.gaotag;