2009-06-10 5 views
0

特定のテーブルから値を取得する必要があるselectにサブクエリがあるクエリがあります。私は、ビジネス上の理由で、ここでクエリを貼り付けする必要はありませんが、ここで私が何をしようとしています何の簡単な例があります:Oracle QueryをASP.NETテーブル・アダプタで認識可能にする方法は?

select a, b, (select x from z) as c from table where ... 

問合せは、ヒキガエルの微細動作しますが、私はASP.NETを通過するとき、私のデータオブジェクトのテーブルアダプタウィザードでは、SQL文について文句を言っています: "SELECT節のエラーNEAR '、'"。私はそれが不平を言っても実行時にまだ動作するかどうかわからないのですか?私は、プレビューが動作しないとデータテーブルを作成していない知っている。誰でもこれを経験しましたか?

私がこのようにしたいのは、フィールドcに値を設定するクエリが常に値を持つとは限りませんが、cが値を持っていなくてもaとbを返さなければならないからです。 SQLの知識があれば、誰もが解決策を提案できるかもしれません。可能であれば、1つのテーブルアダプタのクエリを使用したいと思います。

答えて

2

テーブルZへの外部結合?

SELECT t.a,t.b,z.x 
    FROM table t LEFT OUTER JOIN Z ON (t.y = Z.y) 
WHERE... 

これは、存在する場合はZから値を返し、そうでない場合はNULLを返します。

2

ツールがクエリを理解できない場合、常に機能する方法の1つは、クエリをカプセル化するビューを作成することです。

CREATE VIEW v AS SELECT a, b, (select x from z) as c from table 

あなたは、その後のようにASP.NETでの単純なクエリを使用します。

SELECT a, b, c FROM v where... 

ビューを今、あなたのビジネスロジックが含まれており、他のすべてのコードと一緒にソース管理リポジトリに保存されます。

+0

+1、ユーザーがデータベースにオブジェクトを作成する機能を備えていることをお勧めします。 – DCookie

+0

残念ながら、これにはDBA承認と回帰テストが必要です。 – Jon

関連する問題