【发布时间】:2018-03-07 12:36:26
【问题描述】:
我已经阅读了我能找到的所有关于不相关表连接的帖子,但似乎没有任何内容可以帮助我(我能理解)。 我有 2 个临时表,我需要表 2 只包含其中的行 文本字段包含 table1 中的任何一个名称。这两个表之间没有直接联系。
表 1 示例:
table1.fullname
一个名字
b 名称
c名
名称
表 2 中“主题”列的摘录:
主题
对巴哈马的食品出口市场研究报告
初始电信
名称 - 更新调用以检查进度
更新调用以检查名称的进度
b 名字 - 遇见安娜
建议彼得 - b name
c name- 协助完成资助申请。
d 名称 - 建议
我只需要表 2 中包含主题字段中 table1 中的任何名称的行。
我使用过类似的东西:
WHERE table2.subject LIKE '%'+table1.fullname+'%'
但它不起作用,因为我没有以任何方式加入表格。
大多数帖子似乎都建议使用交叉连接,但由于两个表都非常大,我认为这不是最好的方法。
我认为我应该使用子查询,但无法弄清楚如何加入。
到目前为止我的代码:
IF OBJECT_ID('tempdb.dbo.#ITA', 'U') IS NOT NULL
DROP TABLE #ITA SELECT *
INTO #ITA
FROM (select distinct fullname
from FilteredContact
Where (jobtitle LIKE 'International Trade Adviser%'))InternationalTradeAdviser;
IF OBJECT_ID('tempdb.dbo.#ITAactivity', 'U') IS NOT NULL
DROP TABLE #ITAactivity SELECT *
INTO #ITAactivity
FROM (SELECT distinct FilteredAppointment.activityid as ActivityID, Filteredccx_project.ccx_customerid AS CompanyID, Filteredccx_project.ccx_projectnumber AS ProjectNumber,
CONVERT(varchar, FilteredAppointment.scheduledstart, 103) AS ConvertedTime,
FilteredAppointment.actualdurationminutes, FilteredAppointment.actualdurationminutes / 60 AS Hours, FilteredAppointment.actualdurationminutes % 60 AS Minutes,
'International Trade Adviser' As TypeOfService
FROM FilteredAppointment INNER JOIN
Filteredccx_project ON FilteredAppointment.regardingobjectid = Filteredccx_project.ccx_projectid
WHERE (FilteredAppointment.statecode = 1) AND (FilteredAppointment.subject LIKE '%'+#ITA.fullname+'%') AND
(Filteredccx_project.ccx_programme IN ('04D0B1DF-FD36-E611-8870-005056A52209','14286237-FE36-E611-8870-005056A52209')) AND
Filteredccx_project.ccx_projectstatus IN(803080000,803080001) AND
Filteredccx_Project.ccx_runningtotal>=12)ITAactivities;
我尝试在 WHERE 子句中使用子查询,但这会产生错误消息,因为它返回多于 1 行。
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
对不起。现在会这样做
标签: sql-server sql-server-2008