我有以下查询,效果很好。但是,我需要获取邮件地址的实际状态描述(来自Code_System_State查找表),而不是其查找代码c.ContactMailingStateUlink。
SELECT
c.ClientID
, cp.ClientULink
, cp.ProgramULink
, c.FirstName
, c.LastName
, c.ContactMailingAddress1
, c.ContactMailingAddress2
, c.ContactMailingCity
, c.ContactMailingStateULink
, c.ContactMailingZip
, c.ContactEmail
, c.ContactHomePhone
, c.ContactCellularPhone
, StartDate
, EndDate
, cp.ProgramStatusULink
from Client_Program cp
INNER JOIN client c ON c.ulink = cp.clientulink
where convert(char(10),cp.StartDate,120) = '2016-02-01'
and convert(char(10),cp.EndDate,120) = convert(CHAR(10),DateAdd(yyyy, 1, cp.StartDate)-1,120)
我尝试按如下方式修改我的查询,但收到错误:
“无法绑定多部分标识符”cp.clientulink“。
SELECT
c.ClientID
, cp.ClientULink
, cp.ProgramULink
, c.FirstName
, c.LastName
, c.ContactMailingAddress1
, c.ContactMailingAddress2
, c.ContactMailingCity
, c.ContactMailingStateULink
, css.Description
, c.ContactMailingZip
, c.ContactEmail
, c.ContactHomePhone
, c.ContactCellularPhone
, StartDate
, EndDate
, cp.ProgramStatusULink
from Client_Program cp, Code_System_State css
INNER JOIN client c ON c.ulink = cp.clientulink
INNER JOIN client ON c.ContactMailingStateUlink = css.code
where convert(char(10),cp.StartDate,120) = '2016-02-01'
and convert(char(10),cp.EndDate,120) = convert(CHAR(10),DateAdd(yyyy, 1, cp.StartDate)-1,120)
如何正确加入这些表格?谢谢。
答案 0 :(得分:1)
联接不是给出错误的原因。表Client_Program中的列clientulink不存在。
现在,from-clause中不推荐使用它的旧式语法。这样更好:
from Client_Program cp
inner join Code_System_State css
ON cp.___KEY___ = css.__KEY___
答案 1 :(得分:0)
我从未尝试过加入列标题不匹配的表格 - 这可能是问题所在。您创建联接的列中的数据应匹配。 例如,如果我加入表格,我可以预期CP中的标题会被称为 ulink ,而CSS中的列名为 ContactMailingStateUlink 所以代码应该是
From Client Programme
on c.ulink=CP.ulink
Inner Join CSS
on c.ContactMailingStateUlink = css_code.ContactMailingStateUlink