当另一列(在同一行中)为true时,我想返回一列的值之和。但是,我无法实现...
我正在尝试下一个,但是没有人看起来是正确的。
我可以在这里得到一些帮助吗?谢谢队友。
ISNULL(SUM(CASE WHEN dbo.TD_MODULO.FIELD1== true THEN dbo.TD_MODULO.FIELD2 ELSE 0 end),0) AS MY_CALCULATED_FIELD1
isnull(sum(if dbo.td_modulo.FIELD1 == true, dbo.td_modulo.FIELD2, 0), 0) as MY_CALCULATED_FIELD2
ISNULL(SUM(CASE dbo.TD_MODULO.FIELD1 WHEN THEN dbo.TD_MODULO.FIELD2 ELSE 0 end),0) AS MY_CALCULATED_FIELD1
答案 0 :(得分:2)
FIELD1是位(布尔)字段,然后将其与1或0进行比较
public class SweetViewModel
{
public IEnumerable<Sweet> Sweet { get; set; }
public IEnumerable<Cart> Cart { get; set; }
}
答案 1 :(得分:1)
MyException
引起了人们的关注。 SQL Server中没有布尔值,因此您不能简单地编写true或false(如果是文字,则为SuperException
或dbo.TD_MODULO.FIELD1 == true
,如果为'true'
则为'false'
或{ {1}}),您只需要一个等号。
正确的表达式是带有BIT
的{{1}}。假设1
是0
。
SUM
您可以在其顶部堆叠CASE
。无需执行TD_MODULO.FIELD1
,因为VARCHAR
上不会添加SUM(CASE WHEN dbo.TD_MODULO.FIELD1 = 'true' THEN dbo.TD_MODULO.FIELD2 END)
(默认为ISNULL
)。