Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从交叉联接表中的函数返回的Concat值_Sql_Sql Server_Reporting Services - Fatal编程技术网

Sql 从交叉联接表中的函数返回的Concat值

Sql 从交叉联接表中的函数返回的Concat值,sql,sql-server,reporting-services,Sql,Sql Server,Reporting Services,我需要将SSRS参数中的日期输入UTC转换函数 在concat中无法识别这些值 我现在在“s”附近发现语法错误 select concat(s.y+s.m+s.d]) from( SELECT y.[Value] as y, m.[Value] as m, d.[Value] as d FROM ssrs.FnSplit(@YEAR,',') y cross join ssrs.FnSplit(@MONTH,',') m cross join ssrs.FnSplit(@DAY,',') d

我需要将SSRS参数中的日期输入UTC转换函数 在concat中无法识别这些值

我现在在“s”附近发现语法错误

select concat(s.y+s.m+s.d])
from(
SELECT y.[Value] as y, m.[Value] as m, d.[Value] as d
 FROM ssrs.FnSplit(@YEAR,',') y 
cross join ssrs.FnSplit(@MONTH,',') m
cross join ssrs.FnSplit(@DAY,',') d
) s
注释前编码

DECLARE @YEAR varchar(max)='2222,2111'
DECLARE @MONTH varchar(max)='1,2,3'
DECLARE @DAY varchar(max)='1,2'
DECLARE @START_DATE DATE

--SELECT @START_DATE = CAST((SELECT [Value] FROM ssrs.FnSplit(@YEAR,',') AS VARCHAR(4)) + '-' + RIGHT('0' + CAST((SELECT [Value] FROM ssrs.FnSplit(@MONTH,',') AS VARCHAR(2)), 2)
-- + '-' + CAST((SELECT [Value] FROM ssrs.FnSplit(@DAY,',') AS VARCHAR(4))

select  concat(y.[Value]+m.[Value]+d.[Value])
from (
  SELECT y.[Value], m.[Value], d.[Value]
  FROM ssrs.FnSplit(@YEAR,',') y 
  cross join ssrs.FnSplit(@MONTH,',') m
  cross join ssrs.FnSplit(@DAY,',') d
) s
你在找什么

SELECT DATEFROMPARTS(T1.Value, T2.Value, T3.Value) Dates
--Or CONCAT(T1.Value, '-', T2.Value, '-', T3.Value) StrDates
FROM STRING_SPLIT(@YEAR, ',') T1 
     CROSS APPLY
     STRING_SPLIT(@MONTH, ',') T2
     CROSS APPLY
     STRING_SPLIT(@DAY, ',') T3;
STRING\u SPLIT()
函数替换为您的(
fnslit
)。

您正在寻找

SELECT DATEFROMPARTS(T1.Value, T2.Value, T3.Value) Dates
--Or CONCAT(T1.Value, '-', T2.Value, '-', T3.Value) StrDates
FROM STRING_SPLIT(@YEAR, ',') T1 
     CROSS APPLY
     STRING_SPLIT(@MONTH, ',') T2
     CROSS APPLY
     STRING_SPLIT(@DAY, ',') T3;

STRING\u SPLIT()
函数替换为您的(
fnslit
)。

您在使用
concat
的地方不再可以访问
y
您现在正在访问的
s
。您有一个不必要的括号
选择concat(s.y+s.m+s.d])
。你也可以考虑使用不同的别名来避免你混淆的值。你已经不能访问<代码> y>代码>你在使用<代码> CONTAG/COD>你现在访问<代码> S >代码>。你有一个不必要的括号<代码>选择CONTAT(S.Y+S.M+S.D])< /代码>。您也可以考虑使用不同的别名来避免所造成的混乱。