Объединение таблиц в 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 обеспечивает локальное "соединение". Другими словами, ваш пробег может отличаться.

Другие вопросы по тегам