2011-09-16 74 views
1
create table1 as SELECT from c.Name, Value, Qtr, Value as SUM(Value) 
from User.Pofile a,pet_dsa_qtr_table b,User.Count c,User.Service d 
WHERE Category = 'PROFESSIONAL' and Item_Name = 'PROF_PKT_RECVD' and  
convert(char(32),d.User_Id) = c.Name and Service_Name_Cd = 2 
and Status = 2 and d.User_Id *= a.User_Id and c.Period = b.Period 
and Module = 'ACCT_TRADES' and Type in ('EQ','OPTN') 
GROUP BY Name, Item_Value, 
Qtr HAVING SUM(Value) >= 10000 and Item_Value in ('0', NULL); 

以上是由我創建作爲等同於sybase.Can誰能幫我糾正此查詢從選擇(查詢錯誤)創建

+4

什麼是錯誤> – diagonalbatman

+0

你嘗試把paranthesis選擇語句來創建表1爲(選擇...)); –

+0

我看到的一個問題是,在SQL中有兩個FROM字,在select中使用別名,而在GROUP BY中使用別名。 – diagonalbatman

回答

4

你有一些相當嚴重的語法不一致查詢您的查詢,我試圖糾正(與猜測,因爲你還沒有提供表結構)。例如在選擇列表中,您選擇「值」,但是在GROUP BY組中您選擇「Item_Value」等。

您還需要完全限定您的列,您有一些資格,有些(如「模塊」和「類型」等)你不。

您可能還需要添加存儲子句。

這是我在你想達到什麼樣的最好的猜測:

CREATE TABLE table1 
AS 
SELECT c.Name, 
     Item_Value, 
     Qtr, 
     SUM(Value) as "SUM_Value" 
    FROM User.Pofile a 
     pet_dsa_qtr_table b, 
     User.Count c, 
     User.Service d 
WHERE Category = 'PROFESSIONAL' 
    AND Item_Name = 'PROF_PKT_RECVD' 
    AND TO_CHAR(d.User_Id) = c.Name 
    AND Service_Name_Cd = 2 
    AND Status = 2 
    AND d.User_Id = a.User_Id(+) 
    AND c.Period = b.Period 
    AND Module = 'ACCT_TRADES' 
    AND Type in ('EQ','OPTN') 
GROUP BY c.Name, 
      Item_Value, 
      Qtr 
HAVING (SUM(Value) >= 10000 
    AND NVL(Item_Value, '0') = '0'); 
+0

@peter感謝您的查詢。它的工作..真的很有幫助 – user472625