Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Вниз

Сложный кросс таб отчет. Варианты реализации.   Найти похожие ветки 

 
Kolan ©   (2008-04-20 13:58) [0]

Здравствуйте,
 Задача следующая.

Дано
Есть программа она может проводить измерение. Измерение — это некий заголовок (код, дата, итд) и набор параметров.

Данные об измерении храняться в БД так:

Таблица «Измерения»
КодИзмерения
Другие параметры

Таблица «Справочник параметров»
КодПараметра
Название
&#133

Таблица «Параметры»
КодИзмерения
КодПараметра
Значение


Так вот пользователю все это дело надо вывести в одну строку. Проблемма, еще в том, что с разными измерениями может быть связано разное кол-во параметров.
Пример:
В БД:

Таблица «Измерения»
КодИзмерения Другие параметры
 1            &#133
 2            &#133

Таблица «Справочник параметров»
КодПараметра Название
 1            R
 2            L
 3            C
&#133

Таблица «Параметры»
КодИзмерения КодПараметра Значение
 1            1           10
 1            2           20
 1            3           30
 2            1           11
 2            2           22


А вот что должен увидеть пользователь
КодИзмерения   R   L    C
 1           10  20  30
 2           11  22   —


Вопрос: Как можно реализовать сабж?
У меня есть варианты (я даже уже похожую ветку создавал&#133), но они не совсем годяться, поэтому я их не привожу.

ЗЫ
 Можно менять что угодно, схему БД напирмер.


 
Сергей М,   (2008-04-20 18:36) [1]

Ничего особо сложного пока не просматривается.
Компоненты со вкладки Decision Cube ты, надо понимать, уже разглядывал в лупу ?


 
Kolan ©   (2008-04-20 22:00) [2]

> Компоненты со вкладки Decision Cube ты, надо понимать, уже
> разглядывал в лупу ?

Нет, не слашал о такой, потому и спрашивал&#133

ЗЫ
 В BDS такой не наблюдается, где искать? Или это что-то нестандартное?


 
Сергей М,   (2008-04-20 22:16) [3]


> В BDS такой не наблюдается, где искать?


Понятия не имею.
В 7-ке пакет стандартно имеется.

А СУБД какая ?


 
Kolan ©   (2008-04-20 23:02) [4]

> А СУБД какая ?

MS SQL Server 2000


 
Kolan ©   (2008-04-20 23:05) [5]

> вкладки Decision Cube

А как компоненты называются? Мож переехали в другую вкладку&#133


 
sniknik ©   (2008-04-20 23:17) [6]

> MS SQL Server 2000
BOL - pivot table


 
Kolan ©   (2008-04-21 09:52) [7]

> BOL — pivot table

SELECT Year,
   SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
   SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
   SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
   SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Northwind.dbo.Pivot
GROUP BY Year
GO


Так примерно я и хотел сделать (У меня есть варианты, но они не совсем годяться © [0]), но совсем понятно было как такое сделать в даной ситуации.

То есть я делаю нужный джоин, а затем дин. SELECT. Так?


 
Kolan ©   (2008-04-21 10:19) [8]

Получилось так:
SELECT
 A.MeasurmentID, A.DeviceID, A.OperationName,
 SUM(CASE A.ParamID WHEN 1 THEN A.ParamValue ELSE 0 END) AS Rd,
 SUM(CASE A.ParamID WHEN 2 THEN A.ParamValue ELSE 0 END) AS Cd,
 SUM(CASE A.ParamID WHEN 3 THEN A.ParamValue ELSE 0 END) AS Ld,
 SUM(CASE A.ParamID WHEN 4 THEN A.ParamValue ELSE 0 END) AS Cs,
 A.MeasurmentDateTime, A.Note
FROM
 (SELECT
   Measurments.MeasurmentID, Measurments.DeviceID,
   Measurments.OperationID, Operations.OperationName,
   Params.ParamID, ParamsDictionary.ParamName, Params.ParamValue,
   Measurments.MeasurmentDateTime, Measurments.Note
 FROM Measurments, Operations, Params, ParamsDictionary
 WHERE
      (Measurments.MeasurmentID = Params.MeasurmentID)
 AND  (Measurments.OperationID = Operations.OperationID)
 AND  (Params.ParamID = ParamsDictionary.ParamID))
 AS A
GROUP BY
 A.MeasurmentID, A.DeviceID, A.OperationName, A.MeasurmentDateTime, A.Note


А  SUM(CASE A.ParamID WHEN 4 THEN A.ParamValue ELSE 0 END) AS Cs, я наверно буду на клиенте генерить динамически&#133
Нормально получилось?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.04 c
2-1233895829
des
2009-02-06 07:50
2009.03.29
Как отловить ошибку 405?


15-1232169659
KilkennyCat
2009-01-17 08:20
2009.03.29
Возрождение неработающих частей сайта Delphimaster.


2-1233495081
AlexP
2009-02-01 16:31
2009.03.29
Переключение между приложениями


15-1232632612
Sha
2009-01-22 16:56
2009.03.29
Завтра пятница. Просто задумался :)


2-1233922041
КирилЛ
2009-02-06 15:07
2009.03.29
Как узнать "автономер" сохраняемой записи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский