VisualBasic6.0 SP6
WindowsXP SP3
を使っています。
テーブル名:TBL
ID | シリアルNo | 値
------------------------
1 | 1230000001 | 'A'
2 | 1230000003 | 'B'
3 | 1234000004 | 'A'
5 | 1230100005 | 'A'
というテーブルがあったときに、
値が'A'で、シリアルNoの右6桁のうち最大値を求めたい場合の
SQL文の書き方がわかりません。
こちらで質問してもよいかわかりませんが、どなたか分かる方がいたら教えていただければと思い、質問しました。
よろしくお願い致します。
> SQL文の書き方がわかりません。
SQL には「方言」があるので、どのデータベース製品なのかが
書かれていないことには、具体的な回答はできません。
それにそもそも、VB と関係無いようですし。
> 値が'A'で、
SQL としては WHERE 句で処理できますね。
> シリアルNoの右6桁のうち
数値型であるなら、「1000000 で割った時の余り」で求まります。
文字列型なら、文字列操作関数という事になりますね。
余りの算出方法にしても、文字列操作にしても、データベースによって
使用する演算子や関数が異なります。別途調べてみてください。
> 最大値を求めたい場合
ここは単純に、MAX 集計関数で。
魔界の仮面弁士さん
コメントありがとうございます。
DAOというものを使ってSQLを書いています。
SELECT MAX(right(シリアルNo,6)) AS MAXNUM FROM TBL WHERE 値 = 'K'
としたところ、6桁目までのMAX値を取得することができました。
ありがとうございます。