
No.2ベストアンサー
- 回答日時:
こんなやり方ではどうでしょうか?
SELECT MAX(出荷番号) FROM (SELECT 出荷番号, 出荷日 FROM 出荷 WHERE 出荷日=8/4) AS A INNER JOIN (SELECT 出荷番号, 出荷日 FROM 出荷明細 WHERE 出荷日=8/4) AS B ON A.出荷日=B.出荷日
SQLは、手許に実行環境がないので、不正確です。ニュアンスだけ感じ取ってください^^;
どのDBだとどのSQLが通ったのか、あんまりよく覚えていないので…。
No.3
- 回答日時:
No1さんの回答の2番煎じです。
<出荷ファイル>
ID__出荷日_________出荷番号
1___2007/08/06__5
2___2007/08/06__7
<出荷明細>
ID__出荷日_________出荷番号__品名
1___2007/08/06__5_____________A
2___2007/08/06__6_____________B
UNION 演算子を使用すると、2 つ以上の SELECT ステートメントの結果を結合して単一の結果セットにできます。
(Books Online)
ですから、<最大値なら単一の結果セット>と考えるでしょう。
select 出荷番号 from 出荷ファイル where 出荷日='2007/08/06'
union
select 出荷番号 from 出荷明細 where 出荷日='2007/08/06'
このSQL文の実行結果は次のようです。
____|出荷番号|
____|____________|
___1|__________5|
___2|__________6|
___3|__________7|
こうなれば、出荷番号=7 を選択するのみ。
select max(出荷番号) As 出荷番号最大値 FROM
(select 出荷番号 from 出荷ファイル where 出荷日='2007/08/06'
union
select 出荷番号 from 出荷明細 where 出荷日='2007/08/06') as ShipNumbers
____|出荷番号最大値|
____|_____________________|
___1|___________________7|
「No1さんの回答の2番煎じ」という理由です。
PS:[素直に考えればunionを使いたくなります]とは、どういう意味なのか?
SELECT * FROM 出荷ファイル AS A INNER JOIN 出荷明細 AS B ON A.出荷日=B.出荷日
____|ID|出荷日_______|出荷番号|ID|出荷日_______|出荷番号|品名|
____|---------------------------------------------------------
___1|_1|2007/08/06|__________5|_1|2007/08/06|___________5|A___|
___2|_2|2007/08/06|__________7|_1|2007/08/06|___________5|A___|
___3|_1|2007/08/06|__________5|_2|2007/08/06|___________6|B___|
___4|_2|2007/08/06|__________7|_2|2007/08/06|___________6|B___|
なるほど、単一の結果セットにならないので最大値を求めるには適しないということなんでしょうね。
※恥ずかしながら、本日、生まれて初めて union なんて使ってみました。
※まあ、便利なものがあったんですね。
No.1
- 回答日時:
SQL Serverは、2000ですか?2005ですか?それとも、別のバージョンですか?
出荷ファイルと出荷明細ファイルは、1:1ですか?
同一出荷日の行は、1行なのですか?それとも、複数行ですか?
出荷ファイル.出荷番号と出荷明細ファイル.出荷明細ファイル.出荷番号という異なる列について、最大値を得るなら、素直に考えればunionを使いたくなります。
select max(出荷番号) from
(select 出荷番号 from 出荷ファイル where <出荷日が8/6を得る条件>
union
(select 出荷番号 from 出荷明細ファイル where <出荷日が8/6を得る条件>) as x
inner joinで、何か得たい情報があるのですか?
この回答への補足
SQL Serverは2005です。
また、出荷ファイルと出荷明細ファイルはn:nです。
INNER Joinで得たい情報はないです。出荷番号の最大値だけ得たいのです。
追加ですが、MAX(出荷番号)とありますが、これは、出荷ファイル.出荷番号とか出荷明細ファイル.出荷番号とか指定しなくていいのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) エクセルの表について 3 2023/04/14 18:00
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- 飛行機・空港 国際線の格安航空券 ビジネスクラスのほうが安い場合もあるのですか? 国際線の格安航空券を初めて買おう 4 2022/04/11 12:41
- その他(AV機器・カメラ) ソニーストア 1 2022/12/22 10:02
- 筋トレ・加圧トレーニング 解ける人式もありでお願いします 1.スクワットが60キロで最大8回出来た人の最大筋力 2.スクワット 1 2022/10/04 20:20
- 日本語 連体修飾語についてのご質問 3 2023/07/26 10:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィールド名を取得する方法に...
-
updateでグループ化
-
LEFT JOIN あいまいな外部結合
-
2つのテーブルを結合して最大値...
-
商品番号を入力すると、商品名...
-
Accessのフォームで思った順番...
-
同一テーブルのデータを検索条...
-
ACCESSでフォーム上のオブジェ...
-
IDの欠番
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
カーソル0件の時にエラーを発生...
-
access2021 VBA メソッドまたは...
-
列のヘッダーを含めるのをデフ...
-
SELECT 文 GROUP での1件目を...
-
UNI EN ISO 14001
-
外部参照してるキーを主キーに...
-
EXISTSを使ったDELETE文
-
SQLサーバから、項目の属性(型...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
updateでグループ化
-
LEFT JOIN あいまいな外部結合
-
商品番号を入力すると、商品名...
-
Accessのフォームで思った順番...
-
orace SQL文のエラー(ORA-0092...
-
特定条件での連番の振り方を教...
-
IDの欠番
-
2つのテーブルを結合して最大値...
-
各伝票に対して明細を1行目だけ...
-
Word差し込み印刷 数式について
-
アクセスのフォームで連動した...
-
ACCESSでテキストデータ...
-
エクセルでリピート率
-
Accessレポート 複数条件での集計
-
ファイルメーカーからCSVへのエ...
-
accessフォームのボタン→レポー...
-
アクセス メインフォームの伝...
-
文字列のあるキーワードから開...
-
ACCESSでフォーム上のオブジェ...
-
同一テーブルのデータを検索条...
おすすめ情報