Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=3509030&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 07:46:45 2016
Кодировка: Windows-1251
Crystal Reports - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
Fj_
Carpal Tunnel

Рег.: 12.09.2004
Сообщений: 8795
Рейтинг: 3287
  Crystal Reports
      19.10.2005 17:14
 

Есть кросстаб. В клеточках - среднее значение некоего поля неких записей. Как заставить его не учитывать те записи, в которых значение этого поля нулевое или отрицательное?

То есть один способ я нашел - поставить фильтр на весь репорт. Но блин, так эти записи проходят мимо всего репорта, а хотелось бы их именно локально отфильтровать, чтобы в соседнем кросстабе вывести как раз сумму по тем записям, в которых оно отрицательное.

Можно суммировать не записи, а формулу от записей, которая их подпатчит. К сожалению, мне нужна не сумма а avg, поэтому нулевые значения не катят. Мб можно как-нибудь вернуть null?

Или можно как-нибудь написать собственную функцию для суммирования, типа avg, но не учитывающую нулевые элементы? А какие у нее параметры?




The data is the error (c)IIS FTP Server.
Adoon
member

Рег.: 03.11.2002
Сообщений: 149
Рейтинг: 101
  Re: Crystal Reports [re: Fj_]
      19.10.2005 21:09
 

А нельзя посчитать сумму всех, количество всех, кол-во нулевых и на основе этих данных найти среднее (по каждому полю)?




Редактировал Adoon (19.10.2005 21:19)
maratic_net
sir

Рег.: 23.12.2003
Сообщений: 1073
Из: V-1142L
Рейтинг: 1
  Re: Crystal Reports [re: Adoon]
      19.10.2005 21:17
 

Вариант - создать вычисляемый столбец типа formula = if (col > 0) then col else 0 endif
и суммирование вести по нему. Ну если юзается все данные берутся прямо из сиквел запроса - написать sum(case ....bla-bla-bla)

Fj_
Carpal Tunnel

Рег.: 12.09.2004
Сообщений: 8795
Рейтинг: 3287
  Re: Crystal Reports [re: maratic_net]
      20.10.2005 04:15
 

>> написать sum(case ....bla-bla-bla)
эээ, а где такое написать?
В кросстаб эксперте можно только указать summarized fields, способ вычисления "суммы", и поле/формулу, над которой ведется суммирование. Как так?

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



The data is the error (c)IIS FTP Server.
maratic_net
sir

Рег.: 23.12.2003
Сообщений: 1073
Из: V-1142L
Рейтинг: 1
  Re: Crystal Reports [re: Fj_]
      20.10.2005 09:50
 

в field explorer создай новое вычисляемое поле на основе if. Потом скажи change summary operation - и выбери свое новое выч. поле

Fj_
Carpal Tunnel

Рег.: 12.09.2004
Сообщений: 8795
Рейтинг: 3287
  Re: Crystal Reports [re: maratic_net]
      20.10.2005 11:01
 

А.
Так чувак, я ж говорю, мне нужно не сумму брать, а среднее, при этом 0 ващееее не катят. Вот еслиб можно было null вернуть, тогда да.



The data is the error (c)IIS FTP Server.
maratic_net
sir

Рег.: 23.12.2003
Сообщений: 1073
Из: V-1142L
Рейтинг: 1
  Re: Crystal Reports [re: Fj_]
      20.10.2005 12:32
 

а count(1) или sum(1) не судьба заюзать ???

Fj_
Carpal Tunnel

Рег.: 12.09.2004
Сообщений: 8795
Рейтинг: 3287
  Re: Crystal Reports [re: maratic_net]
      20.10.2005 13:27
 

Где заюзать-то? Я ж говорю - речь о ячейках кросстаба. Я не вижу, как там можно что-нибудь прописать текстом.


Блиа, я что-то перестал понимать.

Если у меня организация базы такая (приблизительно): таблицы A, B, C; B references A.Id, C references A.Id, при этом встречаются только кортежи вида AB и AC (ну то есть как бы у объекта из таблицы А может быть свойство B или свойство С, возможно, не одно), так вот, мне кажется, или когда я в репорт добавляю список AB, а потом список AC, это говно выбирает из базы только те кортежи, в которых есть и B, и C (то есть пустое множество)?! А как с этим побороться?




The data