【问题标题】:Join two views in sql server在sql server中加入两个视图
【发布时间】:2016-07-14 11:19:31
【问题描述】:

查看1

+------+---------------+    
|PERSON  | CONTACTLIST |   
+------+---------------+ 
| A  |      CONT1      |   
| A  |      CONT2      |
| A  |      CONT5      |
| B  |      CONT1      |
| B  |      CONT3      |
| C  |      CONT2      |
+------+---------------+   

视图2

+------+------------------+    
|PERSON  | MEETINGS WITH  |   
+------+------------------+ 
| A  |      CONT7         |   
| A  |      CONT8         |
| A  |      CONT1         |
| A  |      CONT2         |
| B  |      CONT1         |
| B  |      CONT3         |
| B  |      CONT4         |
| C  |      CONT1         |
| C  |      CONT2         |
| C  |      CONT3         |
| C  |      CONT4         |
| C  |      CONT5         |
+------+---------------+   

想要的结果

+------+------------------+ -------+   
|PERSON  | MEETINGS WITH  |        |
+------+------------------+ -------+
| A  |      CONT7         |    0   |
| A  |      CONT8         |    0   |
| A  |      CONT1         |    1   |
| A  |      CONT2         |    1   |
| B  |      CONT1         |    1   |
| B  |      CONT3         |    1   |
| B  |      CONT4         |    0   |
| C  |      CONT1         |    0   |
| C  |      CONT2         |    1   |
| C  |      CONT3         |    0   |
| C  |      CONT4         |    0   |
| C  |      CONT5         |    0   |
+------+---------------+  + -------+

我有“查看1”包含每个人的联系人列表! 一个人可以结识多个联系人,可以和他的联系人列表中的一个联系人开会,也可以不开会!

我想放置一个标志,表明会议是否与联系人列表中的联系人进行了会议!

【问题讨论】:

    标签: sql sql-server view


    【解决方案1】:

    然后是这样的

    select v2.PERSON, 
           v2.[MEETINGS WITH],
           case when v1.PERSON is null then 0 else 1 end as FLAG
    from   view2 v2
      left outer join view1 v1 on v2.PERSON = v1.PERSON and v2.[MEETING WITH] = v1.CONTACTLIST
    

    【讨论】:

      【解决方案2】:

      试试这个

      SELECT 
          V.PERSON,
          V.[MEETINGS WITH],
          (
              SELECT COUNT(1) 
              FROM 
                  view1 
              WHERE 
                  view1.PERSON = V.PERSON AND 
                  view1.CONTACTLIST = V.[MEETINGS WITH]
           ) Counts
       FROM
           View2 V
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-24
        • 1970-01-01
        • 2021-12-25
        • 2011-05-18
        • 2021-03-06
        • 2014-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多