Sql ora-00936缺少带有insert into子句的表达式
正在获取ORA-00936:以下查询中缺少表达式。 请帮忙Sql ora-00936缺少带有insert into子句的表达式,sql,sql-insert,Sql,Sql Insert,正在获取ORA-00936:以下查询中缺少表达式。 请帮忙 INSERT INTO TT_FX_LADDER_INFO(DEAL_NUM,SPOT_RATE,FORWARD_RATE,LBS_RATE,DF_CCY1,DF_CCY2,FX_TYPE,TYPE,TRADING_BOOK_FBO_ID_NUM,ENTITY_FBO_ID_NUM,POS_CCY_PAIR,AS_ON_DATE,DECOMPOSE_DATE,CCY_ONE_AMOUNT,CCY_TWO_AMOUNT,CCY_1,CCY
INSERT INTO TT_FX_LADDER_INFO(DEAL_NUM,SPOT_RATE,FORWARD_RATE,LBS_RATE,DF_CCY1,DF_CCY2,FX_TYPE,TYPE,TRADING_BOOK_FBO_ID_NUM,ENTITY_FBO_ID_NUM,POS_CCY_PAIR,AS_ON_DATE,DECOMPOSE_DATE,CCY_ONE_AMOUNT,CCY_TWO_AMOUNT,CCY_1,CCY_2,IS_FX_MERCHANT_TRADE) VALUES
(
SELECT '0','0','0','0','0','0','FWD','OPENING POSITION',TRADING_BOOK_FBO_ID_NUM,ENTITY_FBO_ID_NUM,CURRENCY_PAIR,LADDER_DATE,DECOMPOSE_DATE,SUM(CCY_ONE_AMOUNT) CCY_ONE_POSITION,SUM(CCY_TWO_AMOUNT) CCY_TWO_POSITION,CCY_1,CCY_2,IS_FX_MERCHANT_TRADE
FROM
(
SELECT hdg.TRADING_BOOK_FBO_ID_NUM TRADING_BOOK_FBO_ID_NUM,hdg.ENTITY_FBO_ID_NUM,hdg.CURRENCY_PAIR,
TO_CHAR(elem.LADDER_DATE,'DD-MM-YYYY') LADDER_DATE,
TO_CHAR(elem.LADDER_DATE,'DD-MM-YYYY') DECOMPOSE_DATE
FROM TT_FX_HDG hdg,TT_FX_HDG_ELEMS elem
WHERE elem.DEAL_NUM = hdg.DEAL_NUM
AND hdg.FX_TYPE = 'FWD'
)
group by TRADING_BOOK_FBO_ID_NUM,ENTITY_FBO_ID_NUM,CURRENCY_PAIR,LADDER_DATE,DECOMPOSE_DATE,CCY_1,CCY_2,IS_FX_MERCHANT_TRADE
);
没有insert into子句的内部查询工作正常
非常感谢您的帮助。只需删除
值即可。使用insert时不需要。选择
。因此,假设所有其他方面都是一致的:
INSERT INTO TT_FX_LADDER_INFO(DEAL_NUM, SPOT_RATE,FORWARD_RATE,LBS_RATE,DF_CCY1,DF_CCY2,FX_TYPE,TYPE,TRADING_BOOK_FBO_ID_NUM,ENTITY_FBO_ID_NUM,POS_CCY_PAIR,AS_ON_DATE,DECOMPOSE_DATE,CCY_ONE_AMOUNT,CCY_TWO_AMOUNT,CCY_1,CCY_2,IS_FX_MERCHANT_TRADE
)
SELECT '0','0','0','0','0','0', 'FWD', 'OPENING POSITION',
TRADING_BOOK_FBO_ID_NUM, ENTITY_FBO_ID_NUM, CURRENCY_PAIR,
LADDER_DATE, DECOMPOSE_DATE,
SUM(CCY_ONE_AMOUNT) as CCY_ONE_POSITION,
SUM(CCY_TWO_AMOUNT) as CCY_TWO_POSITION,
CCY_1,CCY_2,IS_FX_MERCHANT_TRADE
FROM (SELECT hdg.TRADING_BOOK_FBO_ID_NUM TRADING_BOOK_FBO_ID_NUM, hdg.ENTITY_FBO_ID_NUM, hdg.CURRENCY_PAIR,
TO_CHAR(elem.LADDER_DATE,'DD-MM-YYYY') as LADDER_DATE,
TO_CHAR(elem.LADDER_DATE,'DD-MM-YYYY') as DECOMPOSE_DATE
FROM TT_FX_HDG hdg JOIN
TT_FX_HDG_ELEMS elem
ON elem.DEAL_NUM = hdg.DEAL_NUM AND hdg.FX_TYPE = 'FWD'
) x
GROUP BY TRADING_BOOK_FBO_ID_NUM, ENTITY_FBO_ID_NUM, CURRENCY_PAIR,
LADDER_DATE, DECOMPOSE_DATE, CCY_1,CCY_2,
IS_FX_MERCHANT_TRADE;
我还建议:
- 编写您的查询以便您可以读取它们——将不可能的长行分开,并在逗号后使用空格
- 学习使用正确的
JOIN
语法。简单规则:切勿在FROM
子句中使用逗号
- 不要在数值常量周围加单引号。在某些情况下(尽管这里没有),这可能会导致性能问题
- 定义列别名时使用
作为
您的查询完全错误。发现了一些错误
SUM(CCY_ONE_AMOUNT) CCY_ONE_POSITION,SUM(CCY_TWO_AMOUNT) CCY_TWO_POSITION,CCY_1,CCY_2,IS_FX_MERCHANT_TRADE
在内部select语句中未选择上述列。因此,它不会起作用 请很好地格式化您的查询。请格式化,这对眼睛极为有害:DCU可以共享您的表模式,以便我可以在本地计算机上调试它