将sql查询细化到表上的特定行

mzillmmw  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(394)

问题简要说明:
我目前正试图在visualstudio中创建一个报告(rdl文件),该报告获取特定案例的所有电话,并将它们打印在两个表中,如下所示:current tables。我的问题是,当我运行报告时,它从每个案例中获取信息,而不是我目前所处的特定案例。
下面是我用来获取表信息的查询:

SELECT 

FilteredPhoneCall.regardingobjectidname, 

FilteredPhoneCall.icms_contactname, 

FilteredPhoneCall.owneridname,

FilteredPhoneCall.icms_callendtime, 

FilteredPhoneCall.icms_informationgathered, 

Filteredicms_impcase.icms_casenumber

FROM 

FilteredPhoneCall, 

Filteredicms_impcase

WHERE FilteredPhoneCall.regardingobjectidname 

LIKE '%' + Filteredicms_impcase.icms_casenumber + '%'

我应该如何更改查询,以便它指定所有信息都应该来自单个案例。为了清晰起见,下面是我尝试加入的两个表的一些图片:
filteredphonecall表和filteredicms\u impcase
我应该使用内部连接语句吗?另外,让我澄清一下为什么使用like语句是因为行在系统中的方式 FilteredPhoneCall.regardingobjectidname 格式如下:公司名称/caseid,我需要该值的后半部分,caseid以便将表连接在一起以获得特定的case值。
a) 我的语法是否和我认为的一样?
b) 我应该使用更具体的标识符,比如内部连接吗?

ttisahbt

ttisahbt1#

我将转换“关于对象id名称”并显式执行连接:

SELECT 

FilteredPhoneCall.regardingobjectidname, 

FilteredPhoneCall.icms_contactname, 

FilteredPhoneCall.owneridname,

FilteredPhoneCall.icms_callendtime, 

FilteredPhoneCall.icms_informationgathered, 

Filteredicms_impcase.icms_casenumber

FROM 

FilteredPhoneCall

INNER JOIN Filteredicms_impcase

ON SUBSTRING_INDEX(FilteredPhoneCall.regardingobjectidname,'/',-1) =

Filteredicms_impcase.icms_casenumber

有关详细信息,请参阅本文:sql选择某个字符之后的所有内容

ffx8fchx

ffx8fchx2#

不要用“,”来连接两个表。这比交叉连接更糟
转换为如下所示的内部联接:

SELECT 

FPC.regardingobjectidname, 

FPC.icms_contactname, 

FPC.owneridname,

FPC.icms_callendtime, 

FPC.icms_informationgathered, 

FC.icms_casenumber

FROM 

FilteredPhoneCall FPC 

INNER JOIN Filteredicms_impcase FC

ON FPC.regardingobjectid = FC.icms_casenumberid

WHERE FPC.regardingobjectidname 

LIKE '%' + FC.icms_casenumber + '%'

相关问题