アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者です。 SQL文を教えてください。

バージョンはOracle 9.2です。

SELECT LTRIM(TO_CHAR(SEQ_PB_TYOHYO.NEXTVAL,'00000000')) AS NO_TYOHYO
,TO_CHAR(SYSDATE,'YYMMDD') AS DT_SYORI
,TO_CHAR(SYSDATE,'HH24MISS') AS TM_SYORI
,UM.CD_TOKCOD
,TM.RN_TOKUI
,SUM(DECODE(HM.CD_HSYUCD,'000001',UM.SU_URIAGE))
,SUM(DECODE(HM.CD_HSYUCD,'000001',UM.KN_URIAGE))
,SUM(DECODE(HM.CD_HSYUCD,'000002',UM.SU_URIAGE))
,SUM(DECODE(HM.CD_HSYUCD,'000002',UM.KN_URIAGE))
,/* 以下省略(000012まである) */
From URIMEIUM
,TOKMASTM
,HINMASHM
Where(UM.KB_NYURYO = 1 Or UM.KB_NYURYO = 3)
And UM.KB_DATA = 1
And(UM.KB_URINYU = 1 Or UM.KB_URINYU = 2 Or UM.KB_URINYU = 3)
AndUM.DT_URINYU >= CONCAT(W_Date1,'01')
AndUM.DT_URINYU <= TO_CHAR(Last_Day(W_Date2),'YYMMDD')
AndUM.CD_TOKCOD = TM.CD_TOKCOD(+)
AndHM.CD_HSYUCD = UM.CD_HSYUCD(+)
GROUP BY HM.CD_HSYUCD;

SQLスクラッチパットにて実行すると
「ここでは順序番号は使用できません」と言うエラーメッセージが出ます。
で、上から5行消して実行すると実行結果が返ってくるのです。

こういう場合はどうしたらよろしいでしょうか?

A 回答 (2件)

select SEQ_PB_TYOHYO.NEXTVAL, X.* from


 (select to_char(sysdate, 'YYMMDD') asa DT_SYORI , …
  from URIMEI, TOKMAS, HINMAS …) X

ネストすれば、できそうな気がします。

この回答への補足

rancerさんjmhさん回答ありがとうございます。

何とか出来ました。
ノーマルとグループとの絡みが良くなかったみたいです。

また、何か有りましたら宜しくお願い致します。

↓これでいけました。
Select D_ID_CLIENT AS ID_KURAIA
,LTRIM(TO_CHAR(SEQ_PB_TYOHYO.NEXTVAL,'00000000')) AS NO_TYOHYO
,TO_CHAR(SYSDATE,'YYMMDD') AS DT_SYORI
,TO_CHAR(SYSDATE,'HH24MISS') AS TM_SYORI
,UM.CD_TOKCOD
,TM.RN_TOKUI
,Dummy.Dummy01
,Dummy.Dummy02
From URIMEI UM
,TOKMAS TM
,HINMAS HM
,(SELECT SUM(DECODE(HM.CD_HSYUCD,'000001',UM.SU_URIAGE,0)) AS Dummy01
,SUM(DECODE(HM.CD_HSYUCD,'000001',UM.KN_URIAGE,0)) AS Dummy02
Where ・・・・・
GROUP BY HM.CD_HSYUCD) Dummy
Where ・・・・・
;

補足日時:2003/02/21 09:25
    • good
    • 0

SQL文のGROUP BY句に、HM.CD_HSYUCDしか記述がないんで、


それ以外のカラムの値は、集計関数を使わない限り、表示できないと思いますけど。。。
当然、順序をGROUP BY句に記述することもできないはずですけど

ようするに、返ってくる結果の各行に順番に数字を振りたいってことですか?
私の知る限り、SQL文だけでそういうことはできなかったじゃないかなぁー
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す