
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LEFT JOIN あいまいな外部結合
-
IDの欠番
-
accessクエリの結果の縦横表示...
-
Accessのフォームで思った順番...
-
各伝票に対して明細を1行目だけ...
-
アクセスのフォームで連動した...
-
特定条件での連番の振り方を教...
-
SQLで特定の項目の重複のみを排...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
Outlook 送受信エラー
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
Access:クエリーにて集計後に...
-
1、Rstudioで回帰直線を求める...
-
エクセルで最後の文字だけ置き...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
エクセルのxans.について
-
JANコードとPOSコードは同じ?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
updateでグループ化
-
LEFT JOIN あいまいな外部結合
-
IDの欠番
-
Accessのフォームで思った順番...
-
2つのテーブルを結合して最大値...
-
orace SQL文のエラー(ORA-0092...
-
商品番号を入力すると、商品名...
-
各伝票に対して明細を1行目だけ...
-
Word差し込み印刷 数式について
-
エクセルでリピート率
-
文字列のあるキーワードから開...
-
GROUP BY関係で、こんなことは...
-
ACCESSのテーブル設計と...
-
フィールド名を取得する方法に...
-
同一テーブルのデータを検索条...
-
特定条件での連番の振り方を教...
-
SQLで追加処理
-
並び替え
-
access で計算結果を表に代入す...
-
Accessの追加クエリの方法(重...
おすすめ情報