- PR -

SQL SERVER で 先頭データを取得する方法

1
投稿者投稿内容
mTK
会議室デビュー日: 2008/02/01
投稿数: 2
投稿日時: 2008-02-01 23:41
初めて投稿させていただきます。
SQL Serverを使用して、VB.NET2005でプログラムを作成しています。

SQLのSELECT文でGROUP BYを使用するときグループ化の対象でない項目の先頭のデータを取得するにはどうしたらよいでしょうか?

ACCES VBAではFirstを使って

SELECT 伝票日付, 伝票区分, Sum(売上金額) , First(伝票摘要) FROM 売上伝票
GROUP BY 伝票日付, 伝票区分 ORDER BY 伝票日付, 伝票区分;


という記述ができると思うのですが、同じことをVB.NETでするにはどう記述すればよいでしょうか?

ご教授、よろしくお願いします。
忠犬
大ベテラン
会議室デビュー日: 2006/05/01
投稿数: 109
投稿日時: 2008-02-02 01:21
ACCESSにはFIRSTやLASTなど、格納操作をした順番を自動的に保持してくれる
機能があるようですが、これは階層型DBやネットワーク型DBの発想であり、RDBと
してはかなり特殊な機能です。
SQL Serverを含め、主要なRDBMSでは、「格納操作の順番をRDBMS側で保持」と
いった機能はありません。

利用者側で、格納操作の日時を持つ列を作るとか、シーケンス(SQL Serverでは
IDENTITY。ユニークな連番を簡単に生成、管理できる機能)を利用し、MIN関数や
MAX関数を使用するといった方法になります。
mTK
会議室デビュー日: 2008/02/01
投稿数: 2
投稿日時: 2008-02-03 01:55
忠犬様、回答ありがとうございました。

MAX関数を使って対応することにします。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)