2011-08-30 89 views
2

我希望通过设置值通过选择状态更新记录..SQL查询更新与选择

查询应该看起来像这样;

UPDATE FCR.HEADER 
SET (Value1,Value2,Value3) 

(SELECT sum(AMOUNT_FC),sum(AMOUNT_DC), value1 
FROM tableA 
WHERE DATE = to_date('02/05/2006', 'dd/mm/yyyy') 
GROUP BY UNIT_ID, TRX_DATE) 

WHERE TRX_DATE = to_date('02/05/2006', 'dd/mm/yyyy') 
AND column14 = 'some value' 

这个查询的正确格式是什么?

+0

你能描述HEADER和tableA的内容吗?你是否试图从tableA中提取一行并将这些值放在表头的所有行中? – Benoit

+0

@cgval:什么是'value1'?表格列?计算列?过程中的参数? –

回答

0
UPDATE FCR.HEADER 
SET Value1 = (SELECT sum(AMOUNT_FC) 
     FROM tableA 
     WHERE DATE = to_date('02/05/2006', 'dd/mm/yyyy') 
     GROUP BY UNIT_ID, TRX_DATE), 

Value2 = (SELECT sum(AMOUNT_DC) 
     FROM tableA 
     WHERE DATE = to_date('02/05/2006', 'dd/mm/yyyy') 
     GROUP BY UNIT_ID, TRX_DATE), 
Value3 = (SELECT sum(AMOUNT_DC) 
     FROM tableA 
     WHERE DATE = to_date('02/05/2006', 'dd/mm/yyyy') 
     GROUP BY UNIT_ID, TRX_DATE) 

WHERE TRX_DATE = to_date('02/05/2006', 'dd/mm/yyyy') 
AND column14 = 'some value' 

最好是将Date类型的变量保存到to_date(...)。

希望这会有所帮助。