Definition


CREATE   VIEW
  [mr].[Object_Type_Relation_Type] AS
SELECT
  [r].[Relation_Type_Id],
  [r].[From_Object_Type_Id],
  [r].[To_Object_Type_Id],
  [cfo].[Enum_Key] [From_Object_Type],
  [cto].[Enum_Key] [To_Object_Type],
  [cr].[Enum_Key] [Relation_Type],
  CASE
    WHEN [mr].[Count] IS NULL THEN 0
    ELSE [mr].[Count]
  END AS [Count]
FROM
  [R_Object_Relation_Type] [r]
  JOIN [C_Relation_Type] [cr] ON [cr].[Relation_Type_Id] = [r].[Relation_Type_Id]
  AND [cr].[Object_State_Id] = 10
  JOIN [C_Object_Type] [cfo] ON [cfo].[Object_Type_Id] = [r].[From_Object_Type_Id]
  AND [cfo].[State_Id] = 10
  JOIN [C_Object_Type] [cto] ON [cto].[Object_Type_Id] = [r].[To_Object_Type_Id]
  AND [cto].[State_Id] = 10
  LEFT JOIN (
    SELECT
      [mr].[Relation_Type_Id] [Relation_Type_Id],
      [mfo].[Object_Type_Id] [From_Object_Type_Id],
      [mto].[Object_Type_Id] [To_Object_Type_Id],
      COUNT(*) [Count]
    FROM
      [MR_Object_Relation] [mr]
      JOIN [MR_Object] [mfo] ON [mfo].[Object_Id] = [mr].[From_Object_Id]
      AND [mfo].[Is_Deleted] = 0
      JOIN [MR_Object] [mto] ON [mto].[Object_Id] = [mr].[To_Object_Id]
      AND [mto].[Is_Deleted] = 0
    GROUP BY
      [mr].[Relation_Type_Id],
      [mfo].[Object_Type_Id],
      [mto].[Object_Type_Id]
  ) AS [mr] ON [mr].[Relation_Type_Id] = [r].[Relation_Type_Id]
  AND [mr].[From_Object_Type_Id] = [r].[From_Object_Type_Id]
  AND [mr].[To_Object_Type_Id] = [r].[To_Object_Type_Id]

Columns

#ColumnData TypeNullableSource
1Relation_Type_IdintNo
2From_Object_Type_IdintNo
3To_Object_Type_IdintNo
4From_Object_TypenvarcharNo
5To_Object_TypenvarcharNo
6Relation_TypenvarcharNo
7CountintYes