Документ взят из кэша поисковой машины. Адрес оригинального документа : 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 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 15:13
 

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

сначала создай отчет в визарде, закрой его потом нафиг... правый клик по полю в дизайнере -> change summary operation -> Тут можно выбрать формулу и поле. В качестве поля можно указать вычисялемое, но его надо предварительно создать (field explorer -> new formula field).
Если нужно среднее значение:
a | b | c
10 | 10 | 1
-10| 0 | 0
20 | 20| 1
------------------
---| 30| 2 SUM() -> AVG = 15 это то что требовалось ??



Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
2 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в