首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询,该查询在另一个表中查找合同状态并相应地标记

查询,该查询在另一个表中查找合同状态并相应地标记
EN

Stack Overflow用户
提问于 2016-01-27 08:23:17
回答 2查看 94关注 0票数 0

我有以下两张表:

代码语言:javascript
复制
              Table A   
Contract Number     Some other field
       1                     a
       2                     b
       3                     c
       4                     d
       …                     …


                       Table B      
Contract Number     Contract Status     Date of Contract Status
        1              Status-1                1/1/2016
        1              Status-2                1/2/2016
        1              Status-3                1/3/2016
        2              Status-1                1/1/2016
        2              Status-3                1/2/2016
        2              Status-4                1/3/2016
        2              Status-5                1/4/2016
        3              Status-1                1/1/2016
        3              Status-2                1/2/2016
        4              Status-3                1/1/2016
        4              Status-4                1/2/2016
        4              Status-5                1/3/2016
        4              Status-6                1/4/2016
        4              Status-7                1/5/2016
        4              Stauts-8                1/6/2016
        …                 …                       …

我试图编写一个查询,检索表A中的“合同号”和“某些其他字段”。此外,我希望在查询中有第三个字段,如果在表B的“合同状态”中找到某个合同号,则应该显示1,否则该字段显示为0。

到目前为止我所做的是:

代码语言:javascript
复制
Flag: IIf(Table B.Contract Stauts='Status-2',1,0)

我将这段代码用于应该显示1或0的字段。但是,我无法将它包含在查询中。我想我需要某种循环,这样,对于从表A检索的每条记录,循环都会搜索表B中的“Stat-2”。

期望的结果如下所示:

代码语言:javascript
复制
              Query result  
Contract Number     Some other field      Flag
       1                     a             1
       2                     b             0
       3                     c             1
       4                     d             0
       …                     …             ...

你们能给我建议吗?非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-27 08:38:38

如果我没听错的话,你需要的是:

代码语言:javascript
复制
SELECT t.Contract_number,
       t.someOther,
       iif(exists(select 1 from tableB p
                        where p.contract_number = t.contract_number and p.contract_status = 'Status-2'),1,0) as flag_col
FROM tableA t

对于每个contract_number,如果在另一个表中存在status-2,则放置1 other 0。

票数 1
EN

Stack Overflow用户

发布于 2016-01-27 08:47:46

当你加入和离开时,情况会对你有帮助

代码语言:javascript
复制
 SELECT t1.Contract_number,
        t1.someOther,
        case when t2.Contract Stauts='Status-2' then 1
        else 0 end as column_name_you_want
 FROM tableA t1
 Left join tableB t2 on t1.Contract_number = t2.Contract_number
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35032067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档