[英]Select column name dynamically based on rows from another table in SQL server
我需要做以下情况。 我需要一个.DATE_TIME字段来在括号中找到正确的列名称。 因为每一天都有列,所以我需要根据SHIFT_TABLE计算日期。 列名以'TPR'加上日期开头,例如TPR13
DECLARE @SQLText NVARCHAR(MAX) = ''
SELECT @SQLText += 'SELECT (SELECT '
SELECT @SQLText += ( 'TPR' + Convert(varchar,DATEPART(day,a.DATE_TIME) )
) +
' from SHIFT_TABLE as s Where s.id = a.id ) from MAIN_TABLE as a where a.id=''1'' and a.ay=''12'' and a.yil=''2018'' '
print @SQLText
我收到错误消息:不能绑定多部分标识符“ a.DATE_TIME”。
SHIFT_TABLE出现id和TPR01,TPR02,... TPR31列MAIN_TABLE出现id,ay,yil和DATE_TIME列
我必须从a.DATE_TIME开始计算一天。
结果,我尝试达到这样的效果,即从MAIN_TABLE中将SELECT(从SHIFT_TABLE选择SELECT TPR13作为s其中s.id = a.id)作为其中a.id ='1'和a.ay = '12'和a。 YIL = '2018'
我该如何解决? 非常感谢,
DECLARE @SQLText NVARCHAR(MAX) = ''
SELECT @SQLText += 'SELECT (SELECT '
SELECT @SQLText += ( 'TPR' + Convert(varchar,DATEPART(day,a.DATE_TIME) )
) +
' from SHIFT_TABLE as s Where s.id = a.id ) from MAIN_TABLE as a where a.id=''1'' and a.ay=''12'' and a.yil=''2018'' '
FROM [YourTableWhere_DATE_TIME_Exists] AS a
print @SQLText
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.