-3
私は、ストアドプロシージャを使用せずにこれを実行する必要があります。 2番目のテーブルを4 datagridviewのチェックボックスの列にバインドしようとしています。
私は、ストアドプロシージャを使用せずにこれを実行する必要があります。 2番目のテーブルを4 datagridviewのチェックボックスの列にバインドしようとしています。
これは、あなたがしようとC2で自分の価値観は、常にあなたのデータセットが比較的大きい場合もCROSS JOIN
を使用して注意してください[MP], [KL], [OL], [IFL]
をするつもりはないされている場合は、それを動的にする必要があるかもしれませんが動作するはずです:
サンプルデータ:
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp;
CREATE TABLE #temp(C1 INT
, C2 VARCHAR(10));
INSERT INTO #temp
VALUES
(1
, 'MP'),
(2
, 'KL'),
(3
, 'OL'),
(3
, 'IFL');
QUERY:
SELECT DISTINCT
C1
, [MP] = CASE
WHEN [MP] = C1 THEN 'TRUE'
ELSE ''
END
, [KL] = CASE
WHEN [KL] = C1 THEN 'TRUE'
ELSE ''
END
, [OL] = CASE
WHEN [OL] = C1 THEN 'TRUE'
ELSE ''
END
, [IFL] = CASE
WHEN [IFL] = C1 THEN 'TRUE'
ELSE ''
END
FROM #temp AS A
CROSS JOIN
(SELECT [MP]
, [KL]
, [OL]
, [IFL]
FROM
(SELECT C1
, C2
FROM #temp) AS SourceTable PIVOT(MAX(C1) FOR C2 IN([MP]
, [KL]
, [OL]
, [IFL])) AS PivotTable) AS B;
結果:
あなたは 'PIVOT'について学ぶことができます。いくつかのコードを試してみて、ここに戻ってください – techspider
「SQLを使用せずにこれを行う必要があります。 –
申し訳ありません。私は、新しいストアドプロシージャや一時テーブル、カーソルなどを書かずにこれをやりたかったのです。今私の質問を編集しました。私は今、SQLのピボットを学んでいます。しかし、これはピボットテーブルでも難しいようです。 – Saranya