Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
多个条件的SQL Server计数_Sql_Sql Server_Count - Fatal编程技术网

多个条件的SQL Server计数

多个条件的SQL Server计数,sql,sql-server,count,Sql,Sql Server,Count,对于下表,如何为select查询编写子查询 这样我就可以在给定Num的Inv=Esc时返回一个标志列 在下面的示例中,第二行与第五行是匹配的。 我试过了,但还是很困惑。谢谢 **此外,每个Num应该只有一个标志 Num | Name |Inv |Esc|Flag 1) *785* | AB7851 |155 |496 2) *785* | AB7852 |**496 |496** |**Hit** 3) *785* | AB7853

对于下表,如何为select查询编写子查询 这样我就可以在给定Num的Inv=Esc时返回一个标志列

在下面的示例中,第二行与第五行是匹配的。 我试过了,但还是很困惑。谢谢

**此外,每个Num应该只有一个标志

    Num  |  Name   |Inv |Esc|Flag
1)  *785*   | AB7851     |155   |496  
2)  *785*   | AB7852     |**496 |496**  |**Hit**
3)  *785*   | AB7853     |518   |496  
4)  *785*   | AB7854     |769   |496  
5)  236 | AB785Q     |**155 |155**      |**Hit**
6)  236 | AB785R     |496   |155  
7)  236 | AB785S     |518   |155  
8)  236 | AB785T     |747   |155  
9)  236 | AB785U     |769   |155  
您可以尝试在需要时使用CASE

如果要更新标志列,可以尝试此操作

UPDATE T 
SET Flag =  (case when Inv = Esc then 'HIT' end )

我强烈建议您使用计算列执行此操作:

alter table t add flag as (case when inv = esc then 'hit' end);

查询表时,通常会计算计算列。这确保了值始终准确-无需创建插入和更新触发器。

选择*,当inv=esc时,则选择1,否则0作为my_表中的标志结束;很抱歉,我不想向表中添加列,而是向select查询中添加一列,该查询使用标志提取数据。此外,由于库存被反复使用,因此必须为组中的每个Num添加列。因此,对于每个Num,其中Inv=Esc…..请将预期结果添加到问题中。我刚刚添加了它。谢谢。from T tt->from T t2抱歉,所有的T tt t1和t2让我感到困惑。@ORLANDOVAZQUEZ好的,我看到你编辑了你的问题,我编辑了我的答案。你是说我应该在连接中按原样插入这个子查询吗?我如何将它插入到我现有的查询中?例如,我的查询是currenlty:选择Num、Name、Inv、Esc From P Join S on P.Num=S.Num
alter table t add flag as (case when inv = esc then 'hit' end);