在sql查询中添加计算列

时间:2012-07-11 16:31:38

标签: sql-server-2008 tsql

我有一种情况,我有两个表,我想要一个计算列。

表1:VacationMaster

PrefVacationId     |      Description
-----------------------------------------------
1                  |        abc
2                  |        xyz
3                  |        lmn
4                  |        pqr
5                  |        wqa

表2:VacationMapping

PrefVacationId [fk]    |      UseID  |   ID (PK of this table) 
-----------------------------------------------
    1                  |        1    |    1
    4                  |        1    |    2
    5                  |        1    |    3
    1                  |        2    |    4
    2                  |        3    |    5

我需要的是每次所有可用的列表假期都来自主表 为每个用户。我将提供userid作为我的程序的输入,结果应如下所示。

userID = 1作为输入

PrefVacationId     |      Description  |       IsSelected(Computed column)
-------------------------------------------------------------------
1                  |        abc        |        true        
2                  |        xyz        |        false
3                  |        lmn        |        false
4                  |        pqr        |        true
5                  |        wqa        |        true

希望我有一些意义,如何进行此查询。

1 个答案:

答案 0 :(得分:1)

你可以试试这个

Select 
   vm.PrefVacationId,
   Description,
   CASE WHEN vMap.PrefVacationId IS NOT NULL THEN 'True'
   ELSE 'False'
   END IsSelected
From VacationMaster vm
Left Outer Join VacationMapping vMap
ON vm.PrefVacationId = vMap.PrefVacationId 
AND vMap.UserID = @UserID