2013-02-01 3 views
1

Я пытаюсь создать (как я думал) простой Crystal Report. По сути, я хочу, чтобы подготовить доклад, в котором перечислены, например, каждый раз, когда студент получил какой-то дисциплинарные меры:Создание столбца из значений, закодированных в другой таблице

╔═══════════╦═════════════╦════════════╦══════════╗ 
║ StudentID ║ StudentName ║ Action ║ Date ║ 
╠═══════════╬═════════════╬════════════╬══════════╣ 
║ 1   ║ Smith, John ║ Suspension ║ 1/1/2012 ║ 
║ 2   ║ Q, Susie ║ Detention ║ 1/5/2012 ║ 
║ ...  ║ ...   ║ ...  ║   ║ 
╚═══════════╩═════════════╩════════════╩══════════╝ 

Однако эта информация хранится в базе данных в виде трех отдельных таблиц:

  1. Информация для студентов, такая как их идентификатор и имя.
  2. Дисциплинарные меры, включая идентификатор студента, дату и код, указывающий, какие действия были предприняты.
  3. Таблица, пар каждый код с описанием действия, поэтому 1 карты на «содержание под стражей», 2 карты в «Подвеска» и т.д.

Я не уверен, как связать эти столбцы в кристалле Отчеты, в частности, чтобы я мог отображать столбец, описывающий действие, а не только код. Я думал, что поле Expression SQL может сделать это, например, так:

(
SELECT "ActionCodes"."ActionDesc" 
WHERE "DisciplinaryActions"."ActionCode" = "ActionCodes"."ActionCode" 
) 

Добавление этого поля в моем докладе производит только пустые строки, к сожалению. Я на правильном пути, и я просто возился с моим запросом, или есть лучший маршрут?

ответ

0

В Crystal Reports вам нужно будет перейти в Database Expert, перейдите к базе данных, из которой вы извлекаете таблицу. Затем, используя кнопку> в середине экрана, переместите все таблицы справа: Студент, Дисциплинарный, Описание.

Тогда вам нужно будет создать левые внешние соединения.

В таблице «Студент» выберите «StudentID» и перетащите его на «StudentID» Дисциплинарного.

Вы должны увидеть присоединиться, который показывает стрелок от студента до Дисциплинарной --->

После этого левого внешнего соединения Дисциплинарного кодекса с Описанием Кодексом.

После того, как у вас есть правильные соединения, вы можете перетащить различные поля, которые вам нужны, в отчет.

Вы можете использовать опцию SQL Expression, но выполнение объединений будет проще, и вы также сможете гибко использовать Дисциплинарный код или описание в будущем.

Если вам нужны пошаговые инструкции со скриншотами, дайте мне знать.

+0

Я вернулся в отчет и протестировал ваше решение; все работает отлично. Не знаю, как я изначально испортил это, но вы правы, что это можно сделать легко через Expert Database. Спасибо за вашу помощь! –

0

Первая проверка у г запроса в базе данных, то если данные приходят затем Поместите

в StudentID, Student Имя, Action,

даты в Подробности разделе отчета кристалла после еще раз проверить в ReportPriview.

Смежные вопросы