Sql 截断域上Crystal中的连接表

Sql 截断域上Crystal中的连接表,sql,join,crystal-reports,truncate,Sql,Join,Crystal Reports,Truncate,我正在尝试将包含用户信息的表加入到现有的Crystal报表中。我想根据第一个表中一个字段中的前7个字符与第二个表中的唯一ID相匹配来创建联接 我很确定,等价的SQL应该是 JOIN db.table2 on left(db.table1.userid, 7) = db.table2.userid 但我不知道如何将其转换为Crystal的GUI中的操作(或者是否可以在Crystal中执行)。我会指挥的,但是,现有的报告已经使用了通过Crystal自己的方式链接的一大堆不同表中的字段,如果我将其转

我正在尝试将包含用户信息的表加入到现有的Crystal报表中。我想根据第一个表中一个字段中的前7个字符与第二个表中的唯一ID相匹配来创建联接

我很确定,等价的SQL应该是

JOIN db.table2 on left(db.table1.userid, 7) = db.table2.userid

但我不知道如何将其转换为Crystal的GUI中的操作(或者是否可以在Crystal中执行)。我会指挥的,但是,现有的报告已经使用了通过Crystal自己的方式链接的一大堆不同表中的字段,如果我将其转换,将永远无法重新映射所有字段。

您将无法从数据库专家那里执行类似的连接,但您可以将该逻辑放入记录选择公式中,并保留
({table1.userid},7)={table2.userid}


但是,应该注意的是,这是一个非常粗糙的方法,CR通常不喜欢在这样的报告中添加两个传统的未连接的表。只是一个快速的本地测试告诉我,这样做实际上不会转化为格式良好的WHERE子句,但CR强制执行“join”本地。换句话说,您的里程数可能会有所不同。

我最后在另外两个字段(名字和姓氏)上加入了表格相反,应该是可以的,因为我们不可能有两个员工拥有完全相同的第一个和最后一个。不过,我会保留您的答案以供将来参考,我相信它有一天会派上用场。非常感谢!@Joe很高兴听到它得到了解决。请记住,这确实是一个数据库设计问题和您的主键/外键我们的意见应该一致。