"DATA_TABLE"の列2が "唯一"の場合、列1の "table_ID"の別のリストを返そうとしています。column2のすべての行がNULLのときに別のcolumn1sデータを返します
Table_ID | Value
1 | null
2 | 55
1 | null
3 | 5
3 | null
ので、このクエリで - 私は1のtable_idは戻したいだけだろう、2にはヌルを持っていない、と3がnullではない何かが含まれています。 VALUEがインデックスに登録されていないため、このステートメントは効率的ではないかもしれませんが、これは満足できるはずです。
DATA_TABLESの未知の量があり、私は上記のチェックをそれぞれ行う必要があります。どのようにこれらのすべてをループしますか?
カーソルを定義しようとすると、私は難しそうに走っています。私は、各DATA_TABLEs名のリストを持つテーブルを持っていて、それを無駄に反復しようとします。
は、ここで私は私のカーソルのために持っているものだ - そしてRN_TABLEが
DECLARE @RN_TABLE varchar(50)
DECLARE RN_CURSOR CURSOR LOCAL FORWARD_ONLY static For
select r_table from S_DATA
OPEN RN_CURSOR
IF @@CURSOR_ROWS > 0
BEGIN
FETCH NEXT FROM RN_CURSOR INTO @RN_TABLE
WHILE @@Fetch_status = 0
BEGIN
select table_id from @RN_TABLE group by table_id having max(Datavalue) is null
FETCH NEXT FROM RN_CURSOR INTO @RN_TABLE
END
END
close RN_CURSOR
DEALLOCATE RN_CURSOR
すべてのデータを1つのテーブルに格納する必要があります。同じスキーマを持つ複数の表は、データベース構造の問題の兆候です。 –
私はそれを解決する能力がありません。私は製品をサポートするだけで、開発することはありません。 –
'@ RN_TABLE'はテーブルではありません。それをフェッチするときは、列名のないvarchar変数です。 table_id from @ RN_TABLEを選択すると、テーブル変数ではない変数から存在しない列を選択しようとしています。 – scsimon