こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL得意な方

仕事で困っています、
なにとぞお力添えを。

テーブル1から、TOP50 でaとbを表示させたいのです。
で、その際の条件として、
開始するレコードも指定したいのです。
下記SQLの[○]の部分に50が入っていたら、
51~100件を表示する、と、いうような。

SELECT TOP 50 a,b FROM テーブル1
WHERE c='1' AND a >= '' AND a
NOT IN ( SELECT TOP 〇 a FROM テーブル1)
ORDER BY a

で、順調だったのですが、WHERE条件が
なんだか怪しいらしく、
a >= ''の時だけはきちんと動くのですが、
ANDでc='1'をつけた所、普通に全件表示されてしまいます。

[ちゃんと51件目から100件目を表示するSQL]
SELECT TOP 50 a,b FROM テーブル1
WHERE a >= '' AND a
NOT IN ( SELECT TOP 〇 a FROM テーブル1)
ORDER BY a

[何故か全件表示になるSQL]
SELECT TOP 50 a,b FROM テーブル1
WHERE c='1' AND a >= '' AND a
NOT IN ( SELECT TOP 〇 a FROM テーブル1)
ORDER BY a
※[何故かNOT IN (~)の部分がまったく働いていない]

どうしてなのでしょう?。
解りにくい質問で大変申し訳ないのですが
どなたかご教授いただけないでしょうか。

投稿日時 - 2002-06-25 13:52:40

QNo.299765

すぐに回答ほしいです

質問者が選んだベストアンサー

サブクエリー側にwhere句が無いんですけどいいんですか?

投稿日時 - 2002-06-25 14:23:04

お礼

返答ありがとうございます。

<サブクエリー側にwhere句が無いんですけどいいんですか?>

ぜんぜんよくありませんでした(苦笑)。
ああ、そんなことかぁ・・・
でも、ぜんぜん気が付かなかったです、はい。
プログラマ失格ですね、僕。ははは。

とにかく、ほんと助かりました。
40点ぐらい差し上げたいですが20点で勘弁してください。
では。また機会があれば宜しくお願い致します。

投稿日時 - 2002-06-25 14:38:23

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)