Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/91.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# 如何在同一列中添加第一个单元格值和第二个单元格值,并在gridview的下一列中显示结果_C#_Sql_Asp.net - Fatal编程技术网

C# 如何在同一列中添加第一个单元格值和第二个单元格值,并在gridview的下一列中显示结果

C# 如何在同一列中添加第一个单元格值和第二个单元格值,并在gridview的下一列中显示结果,c#,sql,asp.net,C#,Sql,Asp.net,我在asp.net中有一个带有后端sql的gridview。我需要在同一列中添加第一个单元格值和第二个单元格值,并在下一列中显示结果。 例如:sql表: NO Item TYPE QTY 1 glass Transfer 2 2 glass Invoice -1 3 glass Tra

我在asp.net中有一个带有后端sql的gridview。我需要在同一列中添加第一个单元格值和第二个单元格值,并在下一列中显示结果。 例如:sql表:

                   NO  Item    TYPE        QTY
                    1  glass   Transfer     2
                    2  glass   Invoice     -1
                    3  glass   Transfer     4
我需要将结果显示为

                     NO   Item    TYPE    QTY    Balance

                      1   glass  Transfer  2      2
                      2   glass  Invoice  -1      1
                      3   glass  Transfer  4      5
我需要添加第四列第一个单元格和第二个单元格,并在第五列显示结果。 请帮忙

您所描述的可以按如下方式完成:

SELECT
  no
  , item
  , type
  , qty
  , qty + LAG (qty, 1, 0) OVER (ORDER BY no) balance
FROM SomeTable
ORDER BY no
;
但是,这与您的预期结果不符,您的预期结果很像:

SELECT
  no
  , item
  , type
  , qty
  , SUM (qty) OVER (ORDER BY no ROWS UNBOUNDED PRECEDING) balanceExample
FROM SomeTable
ORDER BY no
;
在行动中看到它:

更新: 由于OP使用的SQL Server是2008版,因此分析函数LAG和SUM不可用。在这种情况下,以下方法可能会有所帮助:

SELECT
  S1.no
  , S1.item
  , S1.type
  , S1.qty
  , SUM(S2.qty) balanceExample
FROM SomeTable S1
INNER JOIN SomeTable S2
  ON S2.no <= S1.no
GROUP BY S1.no, S1.item, S1.type, S1.qty
ORDER BY S1.no
;
更新


如果需要调整/进一步详细信息,请发表意见。

您使用的是哪个数据库的哪个版本?数据是否真的按否排序?预期结果中的笔来自哪里和-1+4=3虽然您似乎期望5。不,它也是玻璃,数据库使用的是sql 2008,我需要在列中添加第一个单元格和第二个单元格,并在下一列中显示结果,就像我在示例中显示的一样,执行时,它会显示错误,因为“LAG”不是可识别的内置函数名。您从哪里得到此错误?该示例使用MS SQL Server 2008,运行良好。您似乎表示使用的是同一个数据库版本。sqlserver 2008不支持Sir LAG函数,LAG和lead不支持。是否有其他方法来实现这一点。是否有任何方法可以在asp.net的gridview中实现这一点。我已经尝试过这样做,但如果e.Row.RowType==DataControlRowType.DataRow{total=total+Convert.ToDoubleGridView1.Rows[1]。单元格[6]。Text;//Label2.Text=total.ToString;//Label2.Text=GridView1.Rows[1]。单元格[6]。Text;GridView1.Rows[1]。单元格[7] .Text=total.ToString;}