Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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
C# 条件id为行的SQL求和行_C#_Sql - Fatal编程技术网

C# 条件id为行的SQL求和行

C# 条件id为行的SQL求和行,c#,sql,C#,Sql,SQL server 2008。 我有一张桌子: ID note valueA valueB isCondition condition 1 SumA ? ? True 2+3+4 2 A.1 5 6 False 3 A.2 5

SQL server 2008。 我有一张桌子:

ID         note       valueA        valueB     isCondition    condition
1          SumA         ?              ?         True          2+3+4
2          A.1          5              6         False
3          A.2          5              6         False
4          A.3          5              6         False
5          SumB         ?              ?         True          2+3
6          B.1          ?              ?         False
所以,我想要有条件的和行数

CREATE TABLE #tmp (id int,splitdata int)

CREATE FUNCTION [dbo].[fnSplitdata] 
( 
    @string NVARCHAR(MAX), 
    @delimiter CHAR(1) ,
    @CurrentId int
) 
RETURNS @output TABLE(splitdata NVARCHAR(MAX) 
) 
BEGIN 
    DECLARE @start INT, @end INT 
    SELECT @start = 1, @end = CHARINDEX(@delimiter, @string) 
    WHILE @start < LEN(@string) + 1 BEGIN 
        IF @end = 0  
            SET @end = LEN(@string) + 1

        INSERT INTO #tmp  VALUES(CurrentId,SUBSTRING(@string, @start, @end - @start)) 
        SET @start = @end + 1 
        SET @end = CHARINDEX(@delimiter, @string, @start)

    END 
    RETURN 
END

--------------------------------------------------------------

SELECT ID from TableName as a CROSS APPLY dbo.fnSplitdata(a.Condition,'+',a.ID) as b

代码未编译..请根据需要进行更改

向我们展示您的代码,您试图在哪里解决itsum行???你想要的是2+3+4+2+3或者SumA,SumB。到目前为止没有机会帮助你。。。请将预期结果和计算方法张贴出来。我不知道要求和哪些值…我想得到行“SumA”,列valueA的值是根据条件“ID2+ID3+ID4”求和的。我有c#中的代码,但我想在SQLThank上这样做。谢谢!伟大的代码。Cảmơn rất nhiề美国。
update T1 set a.ValueA=(select sum(ValueA) from TableName join #tmp on TableName.ID=#tmp.splitdata and T1.ID=#tmp.id) from TableName T1 where IsCOndition=1 and Note='SumA'

update T1 set a.ValueA=(select sum(ValueB) from TableName join #tmp on TableName.ID=#tmp.splitdata and T1.ID=#tmp.id) from TableName T1 where IsCOndition=1 and Note='SumB'