动态SQL - 组合2个表

时间:2012-06-07 16:00:08

标签: sql

在我的活动表中,我有列 - 活动,ActivityBaseTable,FieldName

**Activity**    **ActivityBaseTable**    **FieldName**
Task            TaskBase                 CreatedOn
Task            TaskBase                 ModifiedOn

我需要一个像 -

这样的sql语句
select Activity, ActivityBaseTable, FieldName, MIN([Date field], MAX([Date field])
from Activities

最小和最大日期字段为 -

select min(CreatedOn), Max(CreatedOn)
from TaskBase

select min(ModifiedOn), Max(ModifiedOn)
from TaskBase

这可以写成一个声明吗?

1 个答案:

答案 0 :(得分:1)

您可能不会将此视为答案,但如果您可以修改数据模型以不在列中使用表名,则 preferrable。有关该主题的精彩摘要,请参阅here。当我读到你有dozens of rows with different base ActivityBaseTables时,我正在畏缩。我不知道这是一个好主意的设计。

根据您的RDBMS,本网站上有很多示例,还有一些示例如何编写存储过程(这可能是您需要的)。

我只是打算恳求你改变数据模型&完全避免这种情况。