我有数据库表(dbo.TestTable_1),如下所示:
Result Value1 Value2
Y A 1
A 0
B 1
A 1
B 0
我必须读取“Value1”列的前1位并检查,哪一行(列Value1)与该值匹配。获取相应的行值并添加它。如果我的添加是> 0然后我想返回是,否则返回NO。
例如:
"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
我希望,我的解释得到了解。请帮忙。谢谢。
答案 0 :(得分:1)
你很近,你只需要加值2。您不需要临时表:
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