MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[1544]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(1544番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
SQL の記述について

Date: Fri, 22 Jul 2005 14:49:06 +0900
From: "Kohichiroh Ohta" <who@example.co.jp>


いつもお世話になっております。

また、初歩的な質問で申し訳ありません。
SQL文の記述でいつももどかしく
思っているものがあります。
例えばここに「売上」というテーブルが
あったとします。デザインは

---- 売上 ----
売上ID		int not NULL IDENTITY
得意先ID	int
日付		datetime
商品コード	int
数量		int
単価		money

かなり省略していますがこのような感じです。
ここで、各得意先IDの商品コード=10の最新の売上を
1行だけ抽出したいという場合
どのようなSQLを書けばよいですか?
例えば


SELECT 売上.*
FROM 売上
INNER JOIN (
	SELECT
		得意先ID
		MAX(売上ID) AS 売上ID
	FROM 売上
	WHERE 商品コード = 10
	GROUP BY 得意先ID
)AS URI
ON 売上.売上ID = URI.売上ID


このように記述しましたが
これは[売上ID]が一番大きい値の行を
最新の売上とみなしています
もっとも新しい日付の1行を抽出ということになると
このような書き方では抽出できないと思います。
古い日付のものを後で入力する場合もあるからです。

各得意先IDの商品コード=10の日付が最も新しい
売上を1行抽出したい場合
どのように記述すればよいですか?
同じ得意先IDで同じ日付で同じ商品コードの
行が複数ある場合もあります。
その場合は売上IDが最も大きい値のものを
抽出したいのですが
良い記述の仕方があれば、教えてください。




[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。