• 締切済み

列名無効について

お世話になります。 下記のSQLを実行すると列名無効になってしまいます。 なにが悪いのかまったくわからないので アドバイスをお願いします。 最終行の当月一括仮消売上でエラーになっています。 --当月一括仮消売 select t1.取引先コード, (sum(NVL(ukm.売上検収金額,0))) * -1 AS 当月一括仮消売上 from T_ZZ売上検収 uk, T_ZZ売上検収明細 ukm, (select max(t.取引先コード) as 取引先コード, t.部門番号 from (SELECT b.部門番号 FROM M_ZZ部門 b WHERE not exists(SELECT b.部門番号 FROM M_ZZ部門グループ g,M_ZZ部門グループ明細 gm Where g.部門グループ番号 = gm.部門グループ番号 AND gm.部門番号 = b.部門番号 AND g.部門グループ番号 = 67) AND b.削除フラグ = '0') b, (SELECT t.取引先コード, t.部門番号 FROM M_ZZ取引先 t, M_ZZ部門 b where t.部門番号 = b.部門番号 and b.削除フラグ = '0') t group by t.取引先コード,t.部門番号) t1 where uk.売上検収SEQ = ukm.売上検収SEQ and uk.得意先コード = t1.取引先コード and uk.案件属性 = '0' and uk.元売上検収SEQ IS NULL and uk.承認区分 = '1' and uk.削除フラグ = '0' --開始日付 and uk.検収日 >= to_date('20040401 00:00:00','yyyy/mm/dd hh24:mi:ss') --終了日付 and uk.検収日 <= to_date('20040430 23:59:59','yyyy/mm/dd hh24:mi:ss') --仕入商品販売 and ukm.サービス分類コード != '07' group by t1.取引先コード,当月一括仮消売上 よろしくお願いします。

  • Oracle
  • 回答数1
  • ありがとう数16

みんなの回答

  • yutopapa
  • ベストアンサー率47% (139/295)
回答No.1

SQL*Plusで実行すればどの列でエラーとなっているか確認できます。 それでアタリは付きませんか? 他人がSQLだけパッと見てもなかなか探せませんよ、これは。(^^;

antonio123da
質問者

お礼

最終行のgroup by句でエラーになっていたのですが、 よーく見直すとgroup byの使い方を間違えていました。 返信ありがとうございました。

関連するQ&A

  • SQLについて

    お世話になります。 初心者です。 基本的なことなんですが やりたいことは部門グループ番号が67以外の 部門番号を取得して期待のですが どのように書いたらよいのかわかりません。 どなたかアドバイスをお願いします。 現在書いているSQLです。 SELECT b.部門番号 FROM M_ZZ部門グループ g, M_ZZ部門グループ明細 gm, M_ZZ部門 b Where not (g.部門グループ番号 = gm.部門グループ番号 AND gm.部門番号 = b.部門番号 --部門グループ番号 AND g.部門グループ番号 = 67) GROUP BY b.部門番号 よろしくお願いします。

  • SQLについて

    お世話になります。 いろいろ考えたのですが、わかりません。 教えてください。よろしくお願いします。 ●現在のSQLは SELECT 仕入先コード, 支払予定日, SUM(金額) FROM 仕入検収テーブル GROUP BY 仕入先コード,支払予定日 ●テーブルの構成は 仕入検収テーブル  仕入検収番号   (主キー)  仕入先コード  支払予定日  部門番号  金額 ●テーブルデータは 仕入検収番号 仕入先コード 支払予定日 部門番号 金額 1 0001000 2004/06/15 10 3000 2 0001000 2004/06/15 11 7000 3 0002000 2004/06/16 10 20000 4 0001000 2004/06/17 10 1000 上記のようなテーブルの時に 現在は仕入先コードと支払予定日ごとに集約されているのですが、その集約された仕入先コードを用いてその仕入先コードは過去に仕入検収テーブルに登録されていたら備考という項目に「新規」と表示したいのです。 ●実現したい実行結果は 支払予定日 仕入先コード 金額 備考 2004/06/15 00010000 10000 新規 2004/06/16 00020000 20000 新規 2004/06/17 00010000 1000

  • SELECT文が上手く書けません

    会社からSQLのSELECT文を書けと言われて3日目です。PostgreSQL のシステムでWHERE以下が WHERE 売上年月 = ? AND 得意先コード = ? AND 売上種別 = ? としました。画面上では売上年月、得意先コード、売上種別で検索できるようになっているのですが、3種類全て入力しないとエラーになります。この内1種類の入力でも検索できるようにしたいのですが、どのように書けばいいでしょうか? ANDをORに変えたりしたのですが上手くいきません。 全体のSELECT文は external.売上= SELECT 売上番号、売上日、得意先コード、売上区分、金額、入力日 FROM 売上一覧表 WHERE 売上年月 = ? AND 得意先コード = ? AND 売上種別 = ? です。 よろしくお願いします。

  • SQL文を教えて下さい

    VB2008、SQL Server で開発をしています。 下記の条件でデータを取得したいのですが、SQL文がうまくできず、困っています。 おわかりの方、教えてください。 仕様:得意先マスタ(得意先M)の全件と、売上テーブル(売上T)を読みます。     売上テーブルの商品コードの商品名を商品マスタ(商品M)より取得します。     得意先マスタの全得意先を取得する必要があります。     すべての得意先の売上データが存在するわけではありません。 ACCESS上でクエリを作成し、SQLビューにすると、こうなります。 inptSyoCD:画面から入力した商品コード 1,まず、クエリ1: SELECT 売上T.伝票日付, 売上T.伝票番号, 売上T.得意先コード, 売上T.明細区分, 売上T.商品コード, 商品M.商品名称 FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 WHERE 売上T.明細区分=1 AND 売上T.商品コード= inptSyoCD ; 2,次に、実際に処理するSQL文: SELECT 得意先M.得意先コード, 得意先M.得意先名称,       クエリ1.伝票日付, クエリ1.伝票番号, クエリ1.明細区分, クエリ1.商品コード, クエリ1.商品名  FROM 得意先M LEFT JOIN クエリ1 ON 得意先M.得意先コード = クエリ1.得意先コード ORDER BY 得意先M.得意先コード,売上T.伝票日付,売上T.商品コード; この2つをひとつのSQL文にする方法がわかりません。 よろしくお願いいたします。

  • 未検収計上?

    当月受注した商品を通常は発注先に納品を行い、検収をもらってから売上計上するのが業務上の流れだと思うのですが・・・ たとえば当月の売上計上の目標に達することができず、当月受注分で未検収のものを計上してしまうのは違法行為にあたるのでしょうか? 条件として・・・発注者に直接請求が回らないリース契約であることと、納品確認書的な書類に発注者から検印をもらっていることが前提です。 どうもおかしいような気がしているんですが・・・。

  • エクセル表 売上集計と割合

    お世話になります。 今日一日、職場で苦戦し、困っております。 VLOOKUPや集計など試してみましたが、分からなくなりました。 前月と、当月売上数一覧表は業務データより、抽出してます。 「当月は、前月の売上数の何パーセントになるか?」を記載した、 表を作りたいのですが、どのような方法がありますでしょうか。 ・コード・色 ・色 ・社員番号 ・担当 ・売上数 で、ワンセットです。 下記に「前月売上一覧表」、「当月一覧表」、 「作りたい表(イメージ)」を記載しました。 なお、前月、当月の表は、別シートです。 ☆前月売上一覧表 コード/ 色 / 社員番号/ 担当/ 前月売上数 1122/ 赤/ 1A/ 田中/ 50 1122/ 赤/ 2B/ 鈴木/ 150 2211/ 青/ 2B/ 鈴木/ 200 3311/ 黄/ 3C/ 高橋/ 50 ☆当月売上一覧表 コード/ 色/ 社員番号/ 担当/ 当月売上数 1122/ 赤/ 1A/ 田中/ 100 1122/ 赤/ 2B/ 鈴木/  100 2211/ 青/ 2B/ 鈴木/ 150 4411/ 紫/ 5G/ 山田/ 75    ↓↓ ☆作りたい表☆ コード/ 色/社員番号/担当/前月売上数/当月売上数/割合(%) 1122/ 赤 / 1A /田中 /  50/  100 /  50%     ~省略~ ※「割合(%)」は、(当月売上数÷前月売上数)です 初めて質問する為、記載が分かり難く、申し訳ありません。 アドバイスいただけますよう、よろしくお願いいたします。

  • ACCESSを活用して商品変動を追いたい(別3)

    達人様 重ね重ね恐縮です。 以下構文について、 氏名、電話番号が同じお客様の場合で、 商品コード、商品名が前のリストから変わったリストのみ を、 ↓ 電話番号が同じお客様の場合で、 商品コード、商品名が前のリストから変わったリストのみ に条件をこちらも変えられますでしょうか。 http://okwave.jp/qa/q8783133.html SELECT T1.受付日, T1.受付日-T2.受付日 AS 切り替え, T1.氏名, T1.電話番号, T1.商品コード, T1.商品名, T1.数量, T1.価格 FROM (SELECT Q1.*, Q3.CT FROM (★★ AS Q1 INNER JOIN (SELECT 氏名, 電話番号 FROM ★★ GROUP BY 氏名, 電話番号 HAVING Min(商品コード & 商品名)<>Max(商品コード & 商品名) ) AS Q2 ON Q1.氏名=Q2.氏名 AND Q1.電話番号=Q2.電話番号) INNER JOIN (SELECT 受付日, 氏名, 電話番号, Count(*) AS CT FROM ★★ GROUP BY 受付日, 氏名, 電話番号) AS Q3 ON Q1.受付日=Q3.受付日 AND Q1.氏名=Q3.氏名 AND Q1.電話番号=Q3.電話番号 ) AS T1 LEFT JOIN (SELECT 受付日, 氏名, 電話番号, Count(*) AS CT FROM ★★ GROUP BY 受付日, 氏名, 電話番号) AS T2 ON T1.氏名=T2.氏名 AND T1.電話番号=T2.電話番号 AND T1.受付日>T2.受付日 WHERE T2.受付日 Is Null OR (T2.受付日= (SELECT Max(受付日) FROM ★★ WHERE 氏名=T1.氏名 AND 電話番号=T1.電話番号 AND 受付日<T1.受付日) AND IIF(T1.CT<T2.CT,True, T1.商品コード & T1.商品名 Not In (SELECT 商品コード & 商品名 FROM ★★ WHERE 受付日=T2.受付日 AND 氏名=T1.氏名 AND 電話番号=T1.電話番号) )) ORDER BY T1.氏名, T1.電話番号, T1.受付日;

  • ACCESSを活用して商品変動を追いたい(別2)

    こちらのベストアンサーについて、 http://okwave.jp/qa/q8783133.html 以下は氏名、電話番号をKEY(該当者の一致条件)としていましたが、電話番号のみにした場合、いただいた構文がどこが変わるのでしょうか。 こちらは、氏名、電話番号がKEY(これを電話番号だけをKEYにしたい)。 ↓ SELECT T1.受付日, T1.受付日-T2.受付日 AS 切り替え, T1.氏名, T1.電話番号, T1.商品コード, T1.商品名, T1.数量, T1.価格 FROM (SELECT Q1.* FROM ★★ AS Q1 INNER JOIN (SELECT 氏名, 電話番号 FROM ★★ GROUP BY 氏名, 電話番号 HAVING Min(商品コード & 商品名)<>Max(商品コード & 商品名) ) AS Q2 ON Q1.氏名=Q2.氏名 AND Q1.電話番号=Q2.電話番号 ) AS T1 LEFT JOIN (SELECT DISTINCT Q1.受付日, Q1.氏名, Q1.電話番号 FROM ★★ AS Q1 INNER JOIN (SELECT 氏名, 電話番号 FROM ★★ GROUP BY 氏名, 電話番号 HAVING Min(商品コード & 商品名)<>Max(商品コード & 商品名) ) AS Q2 ON Q1.氏名=Q2.氏名 AND Q1.電話番号=Q2.電話番号 ) AS T2 ON T1.氏名=T2.氏名 AND T1.電話番号=T2.電話番号 AND T1.受付日>T2.受付日 WHERE T2.受付日 Is Null OR (T2.受付日= (SELECT Max(受付日) FROM ★★ WHERE 氏名=T1.氏名 AND 電話番号=T1.電話番号 AND 受付日<T1.受付日) AND Exists (SELECT 1 FROM ★★ WHERE 受付日=T2.受付日 AND 氏名=T1.氏名 AND 電話番号=T1.電話番号 AND 商品コード & 商品名<>T1.商品コード & T1.商品名)) ORDER BY T1.氏名, T1.電話番号, T1.受付日;

  • 意味を教えてください。

    以前SQLのアドバイスを頂いたのですが、 (つい締め切ってしまったので・・) その書き方で質問したいのです。Oracle8i update T1 set (合計1,合計2) = ( select T1.合計1 - T2.金額1, T1.合計2 - T2.金額1 - T1.金額2 from T2 where T1.年=T2.年 and T1.個人コード=T2.個人コード and T2.番号=01 and T2.合計1>0 ) where (T1.年,T1.個人コード) in ((2003,1000)) and exists ( select 1 from T2 ・・・(1) where T1.年=T2.年 and T1.個人コード=T2.個人コード and T2.番号=01 and T2.合計1>0 ) このSQLはどういう順番で動くのでしょうか? 特に(1)のSelect 1は、どういう意味なのでしょうか? 何が抽出されるのでしょうか?

  • [Excel ADO]条件にマッチした伝票の出力

    Excel2007 ADOを使ってCSVのSQL処理をしています 対象は売上伝票で、取引先名、商品名などで検索をかけるのですが その結果がマッチした明細のみしか取り出せないのをなんとかしたいです 例えば、1つの伝票には複数明細が含まれるのが通常ですが、 商品名で検索すると、その商品の明細しか出てきません これを、マッチした明細を含む伝票全体を取り出したいのです SELECT 伝票日付,伝票番号 FROM T_売上 WHERE 取引先="A社’ AND 商品名='鉛筆' GROUP BY 伝票日付,伝票番号 こんな形で検索対象を含む伝票の伝票番号リストを得ることはできたので、 次はこの日付と番号でWHEREをかけるのか あるいはEXSISTSなどを使うのか ちょっと具体的にイメージできません 教えていただけるとありがたいです よろしくお願いします