UPDATE:SQL - UNIONからの結果を結合する方法
要求されたよう、ここでは「本当の」SQLです:
SELECT p.ReferenceNumber,
p.Name,
'' as 'Size of Prize',
'' as 'Complexity',
pfc.ConfigurationValue as 'Strategic Fit'
FROM FormConfigurations AS fc INNER JOIN
ProjectForms AS pf ON pf.FormID = fc.FormID INNER JOIN
ProjectFormConfigurations AS pfc ON pfc.ProjectFormID = pf.ID AND pfc.FormConfigurationID = fc.ID INNER JOIN
Project AS p ON p.ID = pf.ProjectID
WHERE (fc.[Key] = 'Strategic Fit')
GROUP BY p.ReferenceNumber, p.Name, pfc.ConfigurationValue, fc.[Key]
UNION
SELECT p.ReferenceNumber,
p.Name,
'' as 'Size of Prize',
pfc.ConfigurationValue as 'Complexity',
'' 'Strategic Fit'
FROM FormConfigurations AS fc INNER JOIN
ProjectForms AS pf ON pf.FormID = fc.FormID INNER JOIN
ProjectFormConfigurations AS pfc ON pfc.ProjectFormID = pf.ID AND pfc.FormConfigurationID = fc.ID INNER JOIN
Project AS p ON p.ID = pf.ProjectID
WHERE (fc.[Key] = 'Complexity')
GROUP BY p.ReferenceNumber, p.Name, pfc.ConfigurationValue, fc.[Key]
UNION
SELECT p.ReferenceNumber,
p.Name,
pfc.ConfigurationValue as 'Size of Prize',
'' as 'Complexity',
'' as 'Strategic Fit'
FROM FormConfigurations AS fc INNER JOIN
ProjectForms AS pf ON pf.FormID = fc.FormID INNER JOIN
ProjectFormConfigurations AS pfc ON pfc.ProjectFormID = pf.ID AND pfc.FormConfigurationID = fc.ID INNER JOIN
Project AS p ON p.ID = pf.ProjectID
WHERE (fc.[Key] = 'Projected EBIT')
GROUP BY p.ReferenceNumber, p.Name, pfc.ConfigurationValue, fc.[Key]
が、私はとして機能です。KeyValue列を持つテーブルを持っています別の大きなソフトウェアに必要な設計時に知られていない列のプレースホルダ。 KeyValue列の特定の値に基づいてレコードを取得する必要があります。この場合、希望の値Foo、Bar、Bazを呼び出しましょう。検索される各レコードは、3つの値をすべて持っていなければなりません。ここで
は、私は労働組合を使用してみましたクエリです:
SELECT KeyValue as 'Foo',
'' as 'Bar',
'' as 'Baz'
FROM Table1
WHERE KeyValue = 'Foo'
UNION
SELECT '' as 'Foo',
KeyValue as 'Bar',
'' as 'Baz'
FROM Table1
WHERE KeyValue = 'Bar'
SELECT '' as 'Foo',
'' as 'Bar',
KeyValue as 'Baz'
FROM Table1
WHERE KeyValue = 'Baz'
残念ながら、何が起こるかは、私がいっぱいにすべての列にギザギザたレコードの代わりに、一つのレコードを持っているということです。私が代わりにこれらを取得しています
Foo Bar Baz
- - -
- - -
- - -
- - -
- - -
:それは私の代わりに、下記のような取得したいレコードです
私は私のクエリを修正するために何をする必要がありますどのようなFoo Bar Baz
-
-
-
-
-
-
?
私はあなたがテーブルに参加する必要があると思います。 –
これは確かにJOINであり、UNIONではありません。 –
列別名に二重引用符を使用します。 '' Foo''です。単一引用符は文字列リテラルのためのものです。 – jarlh