2016-07-19 11 views
1

私はSQLをかなり新しくしているので、次の問題を本当に苦労しています。SQLアクセス - 複数の結果を1つの行に転記

問題:projtaskテーブルには、1つのプロジェクトに対して複数のタスクがあります。 1つのプロジェクトに対して1つの結果行にあるすべてのタスクのすべてのステータス(タスク150,130,110,70ステータスなど)を表示するために、結果を転記する必要があります。

現時点では、そのプロジェクトに関連付けられているタスクの数のために、1つのプロジェクトに対して複数の結果行が返されています。私はこれが理にかなってほしい。もしそうでなければ、プローブしてください。おかげで、すべてのヘルプは

は最終的に私は結果が見えるようにしたい:)いただければ幸いです:私が正しく理解していれば

Project X - Task 10 - Status C - Task 130 - Status A - Task 150 - Status C 
Project Y - Task 10 - Status A - Task 130 - Status C - Task 150 - Status A 
Project Z - Task 10 - Status C - Task 130 - Status C - Task 150 - Status C 


SELECT IIf(dbo_projtask.[task-num]=150 And dbo_projtask.stat='C','Released') AS 150_status, dbo_projtask.[proj-num], 
     IIf(dbo_projtask.[task-num]=130 And dbo_projtask.stat='A','Active') AS 130_status 
FROM dbo_projtask 
GROUP BY IIf(dbo_projtask.[task-num]=150 And dbo_projtask.stat='C','Released'), dbo_projtask.[proj-num], 
     IIf(dbo_projtask.[task-num]=130 And dbo_projtask.stat='A','Active');** 
+0

転置機能はSQLのセマンティクスを破壊します。 – user4759923

+0

これは役に立ちますか? http://stackoverflow.com/questions/13278590/combine-values-from-related-rows-into-a-single-concatenated-string-value – Andre

+0

サンプルテーブルを試してみることはできますか?それが助けになるだろう。 – CodyMR

答えて

0

わからないが、プロジェクトの下ですべてのタスクの列を作成しようとする」doesnのスケーラブルなソリューションのようなサウンド。 ProjectID、TaskID、StatusIDで結果セットを作成し、処理/変更を行う必要はありませんか?リレーショナルデータベースでは、不揃い/動的な列がそれほど多くありません。提案された構造に絶対に設定されている場合は、ピボット構造の並べ替えを使用する動的なクエリを作成する必要がありますが、プロジェクトごとに柔軟な数のタスクがあればうまくいくかどうか疑問に思ってください。

+0

ようこそStackOverflowへ!このような「回答」は、コメントセクション(またはディスカッション)に掲載する必要があります。 – cdomination

関連する問題