2011-09-16 8 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

あなたは(...選択)としてTABLE1を作成する声明を選択するparanthesisを入れてみてくださいました)。 –

+0

私が見ている1つの問題は、あなたのSQLに2つのFROM単語があり、選択肢にエイリアスを使用していますが、GROUP BYにはありません。 – diagonalbatman

答えて

4

を修正するには私を助けるために同等であると私によって作成されたクエリました私が修正しようとしている(あなたがテーブル構造を提供していないので推測して)クエリ。例えば選択リストでは「値」を選択しますが、「項目値」などのGROUP BYグループを使用します。

また、列を修飾したり、修飾したり、「モジュール」や「型」など) あなたはそうしない。

また、ストレージ節を追加することもできます。ここで

はあなたが達成しようとしているもので、私の最高の推測です:

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