Объединение таблиц в Crystal на усеченном поле
Я пытаюсь объединить таблицу с пользовательской информацией в существующий отчет Crystal. Я хотел бы создать объединение на основе первых 7 символов в одном поле в моей первой таблице, соответствующих уникальному идентификатору во второй таблице.
Я уверен, что эквивалентный SQL будет просто
JOIN db.table2 on left(db.table1.userid, 7) = db.table2.userid
Но я не уверен, как это перевести на то, что происходит в графическом интерфейсе Crystal (или если это вообще возможно сделать в Crystal). Я бы сделал это в Command, но в существующем отчете уже используются поля из целого ряда разных таблиц, связанных собственным способом Crystal, и для их преобразования потребуется целая вечность, если я преобразую его.
1 ответ
Вы не сможете выполнить такое соединение от Database Expert, но вы можете поместить эту логику в формулу выбора записи с помощью left({table1.userid},7) = {table2.userid}
,
Тем не менее, следует отметить, что это довольно странно, и CR обычно не нравится, когда вы добавляете в отчет две условно не объединенные таблицы. Просто быстрый локальный тест говорит мне, что выполнение этого способа на самом деле не переводится в правильно сформированное предложение WHERE, но что CR обеспечивает локальное "соединение". Другими словами, ваш пробег может отличаться.