各子テーブルのすべてのIDを持つ1つのマスターテーブルがあります。SQLステートメントは次のようになります...
SELECT Class.Descript
, Regulation.Descript AS Reg
, Compgroup.Descript AS Grouping
, Category.Descript AS Cat
, Exempt.Descript AS Exempt
, Reason.Descript AS Reasons
, COALESCE(ComponentRuleSet.NormalType, ComponentRuleSet.Supertype, '') AS Type
FROM ComponentRuleSet
LEFT OUTER JOIN Reason
ON ComponentRuleSet.ComponentCategoryID = Reason.ComponentCategoryID
LEFT OUTER JOIN Class
ON ComponentRuleSet.ComponentClassID = Class.ComponentClassID
LEFT OUTER JOIN Regulation
ON ComponentRuleSet.RegulationID = Regulation.RegulationID
LEFT OUTER JOIN Compgroup
ON ComponentRuleSet.ComplianceGroupID = Compgroup.ComplianceGroupID
LEFT OUTER JOIN Category
ON ComponentRuleSet.ComponentCategoryID = Category.ComponentCategoryId
LEFT OUTER JOIN Exempt
ON ComponentRuleSet.ExemptID = Exempt.ComponentExemptionID
WHERE (ComponentRuleSet.ComponentID = 38048)
問題は、ComponentRuleSetテーブルにNormalTypeとSupertypeという2つのフィールドがあることです。これらのフィールドのいずれかに値がある場合は、 Typeという列に表示する必要があります。ただし、どちらにも値がない場合は、[タイプ]列に空白の値を表示する必要があります。何か案は?
- -編集
編集したクエリでのCOALESCEの配置は正しいですか?それでもエラーが返されます。
- アップデート
重要:両方のフィールドのタイプはブール値です。TRUE値を保持する列の列名を返し、その値をTYPE列に配置する必要があります。