2016-05-12 96 views
0

我是DB2的新手和学习。DB2左外部JOIN返回错误

我们有下面的查询尝试连接表,但它正在回应我一个错误,有人可以请帮忙吗?

SELECT "Q.WRITETIME", "Q.Queue_Name", "Q.Current_Depth", "S.Oldest_Message_Age", "Q.Percent_Full", "Q.Messages_Read_per_Second", "Q.Messages_Put_per_Second", "Q.Maximum_Depth" 
FROM "ITMUSER"."Queue_Long_Term_History" Q 
LEFT OUTER JOIN "ITMUSER"."Queue_Status" S 
      ON 
"Q.Queue_Name" = "S.Queue_Name" 
where "Queue_Name"='PHX.IIB.WAS.DATAREQ.QL' 
ORDER BY Q."WRITETIME"; 

有人可以帮我看看这个查询吗?

我下面的错误代码播放时: DB2 SQL错误:SQLCODE = -206,SQLSTATE = 42703, DB2 SQL错误:SQLCODE = -104,SQLSTATE = 42601,

回答

0

好像有问题与你的报价。每个对象需要单独引用:"SCHEMA"."TABLE"."COLUMN"

以下是修订后的查询,它也缺少WHERE子句中的表限定符。另外,如提到的Charles,引用的标识符是区分大小写的。

SELECT "Q"."WRITETIME", "Q"."Queue_Name", "Q"."Current_Depth", 
"S"."Oldest_Message_Age", "Q"."Percent_Full", 
"Q"."Messages_Read_per_Second", 
"Q"."Messages_Put_per_Second", "Q"."Maximum_Depth" 
FROM "ITMUSER"."Queue_Long_Term_History" Q 
LEFT OUTER JOIN "ITMUSER"."Queue_Status" S 
    ON "Q"."Queue_Name" = "S"."Queue_Name" 
WHERE "Q"."Queue_Name"='PHX.IIB.WAS.DATAREQ.QL' 
ORDER BY "Q"."WRITETIME" 
1

你有什么地方了无效的列名...

你真的需要引用的名字呢?

对于模式,表或列名,默认情况下DB2不区分大小写。
mycolumn相同MYCOLUMN

如果你真的需要引用的名称,然后意识到,它必须是精确匹配。
"MyColumn"不一样作为"Mycolumn"