喜欢operater在Access SQL子查询

时间:2017-02-15 14:58:03

标签: sql ms-access subquery sql-like

我正在进行项目管理,并有三个表可供使用: 项目任务 ProjectTypeLookup

ProjectTypeLookup 的内容如下所示:

Keyword ProjectType
*-TVC*  TVC
*-OTV*  OTV
*-KV*   KV

任务的内容如下:

projectid  projectname                  taskname
1          Sprite Summer 2016 -TVC(2nd) PRE-LINK TEST (1ST ROUND)
2          MM CNY 2017 -KV              SHOOTING
3          Sprite Revive 2017           STAGE 2 - CAMPAIGN IDEA
4          Sprite Summer 2016 -OTV      CHECK STORY BOARD WITH LEGAL, PAC & SRA

SQL代码就像

SELECT 
t.projectname, 
t.taskname, 
p.p_status,
(SELECT pt.projecttype 
 FROM   projecttypelookup AS pt 
 WHERE  t.projectname LIKE pt.keyword) AS ProjectType
FROM   project AS p, 
       task AS t
WHERE  t.projectid = p.projectid

基本上我希望程序根据存储在 ProjectTypeLookup 表中的预设规则自动生成 ProjectType 字段(TVC或KV或OVT)。

例如,如果项目名称为Sprite Summer 2016 -TVC,匹配*-TVC*,则项目类型应为TVC

由于并非所有项目名称都能匹配规则,并且不匹配的名称在 ProjectType 字段中应该为空值,因此我使用了子查询。

但是效果不好。我只在 ProjectType 字段中看到" TVC"没有KV,没有OTV ....其他项目名称都有空的ProjectType字段,比如

projectname                   projecttype
Sprite Summer 2016 -TVC(2nd)  TVC
MM CNY 2017 -KV            
Sprite Revive 2017   
Sprite Summer 2016 -OTV
Coke Summer 2016 -TVC         TVC

实际上我也可以做LEFT JOIN,但我不知道如何将它与FROM WHERE结构相结合....

0 个答案:

没有答案