【问题标题】:Get addition of row values based on coresponding row values SQL Server根据对应的行值 SQL Server 添加行值
【发布时间】:2014-05-28 01:07:52
【问题描述】:

我有如下数据库表(dbo.TestTable_1):

Result    Value1    Value2

Y           A           1
            A           0
            B           1
            A           1
            B           0

我必须阅读“Value1”列的顶部 1 并检查(Value1 列的)哪一行与该值匹配。获取相应的行值并添加它。如果我的添加是> 0,那么我想返回是,否则返回否。

例如:

"select top 1 Value1 from dbo.TestTable_1" will return A.

然后我需要找到“Value1”中存在A的行号。也就是(在这里),第 1,2 和 4 行。然后我想在“Value2”列中添加相应的值。即 1+0+1 = 2(大于 0)然后我想返回 YES。

我的输出表应该如下所示:

Result    Value1    Value2

YES           A           1
              A           0
              B           1
              A           1
              B           0

我尝试了以下查询来实现这一点。但我无法继续。

declare @val1 int
set @val1 = (select top 1 Value1 from dbo.TestTable_1)
create table #Temp
(
Val1 int
)
Insert into #Temp
select Value1 
from dbo.TestTable_1
select * from #Temp

希望我的解释能被理解。请帮忙。谢谢。

【问题讨论】:

    标签: sql sql-server sql-server-2008 tsql


    【解决方案1】:

    你很接近,你只需要对 value2 求和。您也不需要临时表:

    declare @val1 int
    set @val1 = (select top 1 Value1 from dbo.TestTable_1)
    
    select CASE WHEN SUM(Value2) > 0 THEN 'Yes' ELSE 'No' END
    from dbo.TestTable_1
    WHERE value1 = @val1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2016-06-13
      • 2023-03-17
      相关资源
      最近更新 更多