Crystal Reports, эквивалентный «ГДЕ» - PullRequest
2 голосов
/ 25 февраля 2012

Я знаком с SQL, но не с Crystal Reports. Я пытаюсь разобраться с импортированным набором данных с 5 столбцами:

id           deathDate           giftDate        giftAmount       Dead
123           2008-01-06          2011-09-08       25.00          TRUE
456           2009-06-08          2011-10-13       10.00          TRUE
789              0                2011-12-04       50.00          FALSE
...

Я пытаюсь выполнить подзапрос, но не могу понять, каким будет CR-эквивалент WHERE в SQL. Я хотел бы сделать что-то вроде:

SELECT count(id) from tab1 where dead=TRUE

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 25 февраля 2012

Как заметили Конрад и dotjoe, эквивалент Crystal в выражении sql where - это Select Expert - вы должны быть в состоянии найти его в меню Report.

Если вам необходимо включить как истинные, так и ложные Dead записи в подробный раздел, но вы хотите получить итоговую сумму только для тех записей, где Dead истинно, самый простой способ сделать это - настроить элемент формулы , Для этого:

  • Щелкните правой кнопкой мыши по опции Поля формул в Обозревателе полей и выберите Создать ....
  • Введите подходящее имя поля формулы, например DeadCount.
  • В редакторе формул введите формулу, подобную следующей (при условии, что Dead - строка):

    If {tab1.Dead} = 'TRUE' then 1

  • Используйте кнопку x-2 (или Alt-C), чтобы убедиться, что в формуле нет ошибок, затем нажмите кнопку Сохранить и закрыть, чтобы выйти из редактора формул.

  • Перетащите новое поле формулы из Обозревателя полей в любое место отчета.
  • Щелкните правой кнопкой мыши поле формулы, которое вы только что добавили в отчет, и выберите в меню «Вставка»> «Сводка ...».
  • В диалоговом окне «Вставить сводку» укажите операцию «Сводка» в виде «Сумма», а расположение «Сводка» в качестве общего итога (нижний колонтитул отчета), затем нажмите кнопку «ОК». Суммированное поле, помеченное как Sum of @DeadCount, должно появиться в нижнем колонтитуле отчета. (Теперь вы должны удалить поле неполной формулы с того места, где вы поместили его в область разработки отчета.)

Этот метод по сути аналогичен включению суммированного значения регистра в запросе sql - что-то вроде: select sum(case when Dead = 'TRUE' then 1 end) as DeadCount from tab1

1 голос
/ 25 февраля 2012

Добавьте это к формуле выбора записи ...

{datasetname.Dead} = true 
//note: I'm not sure what data type that is but CR uses bool for bit and XSD bool 

Затем добавьте поле сводки в нижний колонтитул отчета, в котором выполняется подсчет (id).

Или, если вам нужно отобразить набор данных и вам нужен только подзапрос, вы можете использовать поле под названием «Промежуточный итог». Здесь вы можете выполнить подсчет (id) и добавить выражение where к необходимой формуле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...