• ベストアンサー

UNIONについて

お世話になります。 Oracle11gで開発をしています初心者です。 下記の様なSQL文で、 テーブル内の全データが抽出されないのですが 何故でしょうか。 同じ内容の行が複数あっても、1行しか抽出され ないのです。 本当に初心者の質問で申し訳ございませんが、 ご教示頂きたく宜しくお願い致します。          記 SELECT 登録日時,品番,品名,入庫数,NULL AS 出庫数 FROM T入庫 UNION SELECT 登録日時,品番,品名,NULL AS入庫数,出庫数 FROM T出庫

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

質問者が選んだベストアンサー

  • ベストアンサー
  • tohru999
  • ベストアンサー率49% (76/154)
回答No.1

UNION ALL にしてみてはどうでしょうか?

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

リファレンスを見てみるようにするといいと思います。 http://download.oracle.com/docs/cd/E16338_01/server.112/b56299/operators005.htm#sthref847

関連するQ&A

  • 副問い合わせについて

    お世話になっております。 Oracle初心者です。 下記(1)~(3)までの内容を経て(4)のSELECT文が出来る様に FROM句や副問い合わせを考えていたのですが、 私にはまだ出来ませんでした。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。          記 (1) select ID,入庫数 from 入庫台帳 group by ID,入庫数 (2) select ID,出庫数 from 出庫台帳 group by ID,出庫数 (3) 現在庫数=入庫数-出庫数 (入庫台帳のID=出庫台帳のID) (4) SELECT ID,品番,品名,現在庫数

  • 在庫数の取得

    T_zaikoというテーブルに 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  6 2006/08/02 りんご 0001  棚卸    6 2006/08/03 りんご 0002  棚卸    8 があります。 これを品番は関係なしで在庫数を求めたいのですが どうすればいいのでしょうか? 日付    品名   入庫 出庫 在庫数  2006/08/01 りんご   3     3   2006/08/01 りんご      1  2   2006/08/01 りんご   8   2  8 2006/08/02 りんご   棚卸    12 2006/08/03 りんご   棚卸    14 というようにしたいのです。 上から順に入庫のときは足して出庫のときは引いていくと棚卸のときがおかしくなります。 どうすればいいのでしょうか? activereportへ出力したいのです。 よろしくお願いします。

  • 現在庫算出方法についてお教え下さい

    在庫管理についてお教え下さい 私の行なっている現在庫の算出方法が妥当かどうか御教え頂けないでしょうか? 在庫管理を会社で行なっています。小さい会社なので、商品もそれほどあるわけではありません。 入庫したら以下の方法で入庫処理しています。 ハンディターミナルで商品のバーコードをスキャンし、個数を入力。PCに転送しMYSQL5で管理。 テーブルは、 T_入庫マスター 商品コード,入庫数 出庫したら以下の方法で出庫処理しています。 ハンディーターミナルで商品のバーコードをスキャンし、個数を入力。PCに転送しMYSQLで管理。 テーブルは、 T_出庫マスター 商品コード,出庫数 さらにビューを2つ作っています。 V_入庫マスター select 商品コード,sum(入庫数) As 入庫数 from T_入庫マスター group by 商品コード V_出庫マスター select 商品コード,sum(出庫数) As 出庫数 from T_出庫マスター group by 商品コード 現在庫を求めるには、全ての入庫から全ての出庫を引いたものが現在庫になるはずなので、もう一つビューを作ります。 V_現在庫マスター select V_入庫マスター.商品コード,V_入庫マスター.入庫数 - V_出庫マスター.出庫数 As 現在庫 from V_入庫マスター inner join V_入庫マスター.商品コード = V_出庫マスター.商品コード まだ作り始めて間もないのですが(今まではExcelで在庫管理してました)、果たして現在を求めるのにこのようなやりかたで良いのかどうか不安になりました。 このやり方がスマートかどうか教えて頂けませんでしょうか? 毎日の入出庫は、取扱点数50点。入庫、出庫はマチマチですが各商品10前後です。 よろしくお願いいたします。

  • activereportの計算式

    VB6.0でactivereportを使っています。 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  6 というように今在庫テーブルには品番ごとの在庫数が入っています。 それをactivereportへ出力するときに 品番を無視して在庫数を計算したいのですが どうすればいいのでしょうか? 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  8 というようにしたいのです。 前日の実在個数+入庫-出庫という方法を考えています どこをどのようにしたらいいのかがわかりません。 教えてください。 よろしくお願いします。

  • sqlについての質問

    お世話になります。 下記コードにて、抽出されたデータに不備があります。 「q2.新新品番(+) = A.品番」としていますが、 完全一致しない品番が見受けられ、trimを使ったら 良いのではと思うのですが、どこにtrimを入れたら 良いのか、又は考え方自体違うのか 現在テンパっている所でございます。 どなたか良いアドバイスを頂けたらと思い、 ご質問させて頂きました。 何卒、ご教示頂けます様、宜しくお願い致します。          記 select case when substr(q2.新新品番,8,1)='_' then substr(q2.新新品番,1,7) else q2.新新品番 end as 品番 ,SUM(q2.新新合格数) AS 生産合格数 ,A.伝票ID,A.品番,A.新入庫数量 as 区画入庫数,A.区画番号 from ( select case when substr(q1.新品番,6,1)='_' then substr(q1.新品番,1,5) else q1.新品番 end as 新新品番 ,SUM(q1.新合格数) AS 新新合格数 from ( SELECT 更新日時, case when substr(ハンドル,7,1)='_' then substr(ハンドル,1,6) else ハンドル end as 新品番 ,SUM(合格本数) AS 新合格数 FROM D最終検査履歴 WHERE 更新日時 BETWEEN '2012-5-31' and '2012-6-01' group by 更新日時, case when substr(ハンドル,7,1)='_' then substr(ハンドル,1,6) else ハンドル end )q1 group by case when substr(q1.新品番,6,1)='_' then substr(q1.新品番,1,5) else q1.新品番 end )q2 , (select 伝票ID,品番,sum(入庫数量)as 新入庫数量,区画番号 from D屋外入庫 where 登録日時 between '2012-5-31' and '2012-6-01' and 伝票ID='SN' group by 伝票ID, 品番, 区画番号 )A where q2.新新品番(+) = A.品番 group by case when substr(q2.新新品番,8,1)='_' then substr(q2.新新品番,1,7) else q2.新新品番 end, A.伝票ID, A.品番, A.新入庫数量, A.区画番号

  • ACCESS2000 ユニオンクエリーで、同一データについて

    こんにちは。 ACCESS2000で、超初心者から初心者に脱皮中です。 倉庫管理の仕事をしています。 各地の倉庫から在庫データを提出してもらい、データ管理を行っています。 データの内容は 倉庫番号, 品番, 品名, 区分, 数量 です。 一括管理のために、各倉庫のデータをユニオンクエリーでつなぎます。 SELECT 倉庫番号, 品番, 品名, 区分, 数量 FROM 倉庫1 UNION SELECT 倉庫番号, 品番, 品名, 区分, 数量 FROM 倉庫2 … UNION SELECT 倉庫番号, 品番, 品名, 区分, 数量 FROM 倉庫7; この中に、たまたますべてのデータが同一のデータが存在しました。 倉庫7,A00,食器洗剤,破損品,1 倉庫7,A00,食器洗剤,破損品,1 要するに、同じ倉庫に同じものが、同じ状態で同じ数量あったということです。 ユニオンクエリーの結果は、この片方しか表示してくれないのです。 同一データであっても並べて表示し、あとでクロス集計等をしたときに、数量2 と表示したいのですが、知恵をお貸しください。 ちなみにすべてのテーブルに、主キー等は設定していません。

  • エクセルで入出庫の履歴

    見れるようにしたいのですが、エクセル初心者の為何からしていいかわかりません。 知恵をおかし頂けないでしょうか? (例) 品名「3F-1」と言うものが1/31に出庫して2/2に入庫してきた。そしてまた2/5に出庫・2/7に入庫という感じで履歴を残していきたいです。 品名をいれて1発で履歴が出てくるような表を作りたいのです。 宜しくお願いします。

  • UNION ALLのように順番がありNULLを返す方法

    SQL初心者です。ACCESSデータベースに対するクエリを書いているのですが、 条件を配列として、その配列の順番に応じたSELECT文を書きたいのです。 SELECT * FROM access_db WHERE ID = '条件' UNION ALL SELECT * FROM access_db WHERE ID = '条件' UNION ALL SELECT * FROM access_db WHERE ID = '条件' UNION ALL... といった具合にSQL文を作成しているのですが、これでは見つからない条件がある場合に、行が繰り上がり条件を格納した配列とはずれが生じてしまいます。 見つからなかった場合にNULLまたはそれを表せる何かを抽出結果として組み込むことはできますか? SQL初心者のためUNION ALL程度しか近いものが見つけられなく、困っています。 どなたかよろしくお願いします。

  • Accessで倉庫管理

    お世話になります。 現在Accessで在庫管理作成中です。 テーブル: 入庫:品番 品名 グループ 数量 使用者 日付 出庫:品番 品名 グループ 数量 使用者 使用状態 日付 グループ:1 消耗品        2 道具       3 機械 クエリ 消耗品在庫:入庫(消耗品)-出庫(消耗品) フォーム: 入庫フォーム、在庫フォームと出庫フォームを作成しました。 在庫フォームはクエリの元で作成しました。 以上のように作りました。 やりたいことは出庫フォームを入力する時、消耗品なら、数量を入力して、一旦在庫を確認して出したい数は在庫があれば、入力できます。そうではない場合はエラーでます。 言葉がうまく説明できないですのでイメージとしては Select Case グループID Case 1 If 数量<「在庫フォーム」の数量 Then  そのまま入力出来ます。在庫が減って行きます。 Else エアー Message box”在庫は足りません” こんな感じでコードに書き換えられますか?コードが弱いですので助けて下さい。 よろしくお願いします。  

  • 更新クエリが実行できず、困っています。

    以前こちらで、更新クエリについて教えて頂きましたが、 実行できず、困っています。 在庫クエリで計算した在庫数を、部品マスタの現在庫に代入する 更新クエリを実行すると、 「更新可能なクエリでなければなりません」とエラー表示されます。 UPDATE T_部品マスタ AS A INNER JOIN Q_在庫 AS B ON A.部品品番=B.部品品番 SET A.現在庫 = B.在庫数; と作成しました。 以下に、作成したデータベースを書き出してみます。 どこが悪いのか、ご指摘頂ければ幸いです。 よろしくお願いします。 部品分類テーブル 部品分類ID(主キー) 部品分類名 保管場所テーブル 保管場所ID(主キー) 保管場所 部品マスタテーブル(T_部品マスタ) 部品品番(主キー) 部品分類ID 保管場所ID 部品名 現在庫 入出庫テーブル 入出庫ID(オートナンバー) 日付 部品品番 入庫数量 出庫数量 入出庫テーブルを元にクエリを作る 入庫クエリ 部品品番 入庫数量の合計 出庫クエリ 部品品番 出庫数量の合計 在庫クエリ(Q_在庫) 部品品番(部品テーブル) 部品名(部品テーブル) 入庫数量の合計(入庫クエリ) 出庫数量の合計(出庫クエリ) 在庫数(nz([入庫数量の合計])-nz([出庫数量の合計])