ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQLコマンドでのTOPとORDER BY句について

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2016-7-29 16:29
Ace_Nagashim  一人前   投稿数: 105
SQLコマンドのTOP指定がうまくいかなくて困っています。

下記のような会員マスターテーブルがあったとします。
会員CD 会員名 住所 購入額
0001 松田 信彦 福岡市博多区 1,000
0002 内川 誠一 福岡市南区 2,500
0003 柳田 弘樹 佐賀市嘉瀬町 2,000
0004 本多 祐司 福岡市中央区 13,000
0005 今宮 健一 長崎市深堀町 8,000
0006 長谷川裕也 福岡市東区 6,000
0007 中村 明 福岡市早良区 8,000
0008 森福 克彦 福岡市博多区 15,000

住所が福岡市で購入額3000以上の顧客の上位3名を抽出するため
下記のSQLコマンドを実行しました。

SELECT TOP 3 会員CD,会員名,購入額 FROM 会員マスター
WHERE 購入額>=2000 AND 住所 LIKE '%福岡市%'
ORDER BY 購入額 DESC

実行結果は
会員CD 会員名 購入額
0004 本多 祐司 13,000
0006 長谷川裕也 6,000
0002 内川 誠一 2,500

表示順はORDER BY で指定した購入額の降順になっていますが、
TOP 3 が購入額では無く、会員CDを対象にしているようです。
購入額の多い順でのTOP3を抽出するためにはどのようにしたらいいか
ご教示をお願いします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-7-29 17:11
nkmt  長老   投稿数: 1668
ちょっと似たような実験をしてみました。
SELECT TOP 10 伝票番号,入金額
FROM DATA入金伝票
WHERE 入金日 >='20160101'
ORDER BY 入金額 DESC

伝票番号ではなく、入金額の大きい順に並びました。

SQL Sever Management Studio でのクエリー実験と
Magic 開発版で実行したのと同じ結果になりました。

が・・・Magic側は結果データベースをSQL Serverにしてたら
Management Studio と同じ結果にはなりませんでした。

結果データベースをMemoryにしたら同じ結果になりました。

今後は、結果データベースは必ず指定して、Memoryにするようにしてみたいと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-8-3 9:36
Ace_Nagashim  一人前   投稿数: 105
nkmtさん ありがとうございます。

結果データベースをSQl Server にしていました。
MemoryTable に変更したら、意図した結果になりました。
ありがとうございました。
投票数:1 平均点:10.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約