« 窒息ケースxファンレスビデオカード=? | トップページ | エアフローは大事だよ »

2010年10月 4日 (月)

サブクエリの動作の違い

今日はめずらしく、sawagani氏が教えを乞いにやってきました。
何でも、今ではマイナーなPervasiveSQLのv8で、サブクエリが期待通りにならないとの事。
コンバート結果の確認のためにプログラムを組むのも何なので、SQL文を発行して確認できれば有り難い。

なるほど。では、SQLServerで動作確認してみるわ。

SELECT * FROM 明細データ AS a
LEFT OUTER JOIN (SELECT DISTINCT id FROM 明細データ WHERE s_date >= '2001-10-01') AS b ON a.id = b.id
WHERE s_date >= '2001-10-01'

まあ、このクエリ自体にツッコミたい事はありますが、とにかく文法的にエラーはありません。
多分、期待通りの動作をしているのでしょう。

しかし、PervasiveSQLでは、この記述はエラーになります。
何か納得いかないので試行錯誤してたら、IN 句に記述することで動作しました。

SELECT * FROM 明細データ AS a
WHERE a.id IN (SELECT DISTINCT id FROM 明細データ AS b WHERE s_date > '2001-10-01') AND a.s_date >= '2001-10-01'

SQL文の記述として、どちらが自然なんだろう。

« 窒息ケースxファンレスビデオカード=? | トップページ | エアフローは大事だよ »

仕事部屋」カテゴリの記事

2014年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
サイト内検索
ココログ最強検索 by 暴想

Twitter

開発Twitter

無料ブログはココログ