|
|
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
MS-SQL Server 2000. Проблема с реализацией запроса из справочника следующей структуры: - ID - (идентификатор) - Pr(1)...Pr(n) - набор полей признаков - Value - значение - DT_Reg (дата актуальности значения) Запрос на одно актуальное значение у меня выглядит так: SELECT TOP 1 Value FROM <Reference> WHERE (Pr(1)=x(n))AND...AND(Pr(n)=x(n)) ORDER BY DT_Reg DESC. Реально ли при такой структуре справочника получить список актуальных значений на определенную дату не по одному, а по нескольким значения одним запросом? Мне пришлось писать Stored Procedure с временной таблицей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 10:59:33 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
Разве что только с подзапросом SELECT Value FROM <Reference> WHERE (Pr(1)=x(n))AND...AND(Pr(n)=x(n)) and DT_Reg = (select max(DT_Reg) FROM <Reference> WHERE (Pr(1)=x(n))AND...AND(Pr(n)=x(n))) ну и варинат подзапроса, если нужен диапазон... другой вопрос - производительность... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 11:06:12 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
Реально. Хочешь - пиши на мыло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 11:14:42 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
Я это сделал бы через две вьюхи. Код: plaintext 1. 2. и Код: plaintext 1. 2. 3. 4. 5. Но вопрос производительности остается: такие вьюхи нельзя индексировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 12:02:06 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
Задача выборки сильно упрощается если хранить не дату актуальности, а период актуальности, т.е. две даты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 12:12:27 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
2SergSuper >>Задача выборки сильно упрощается если хранить не дату актуальности, а период актуальности, т.е. две даты .. и усложняется задача проверки дипазонов (периодов) 8) 2VVG_ А можно одним запросом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 12:48:17 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
Можно и одним, но для вьюхи оптимизатор хотя бы помнит план выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 13:04:57 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
Только это плохо, а не хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 13:58:25 |
|
||
|
реализация справочника с историей значений за периоды
|
|||
|---|---|---|---|
|
#18+
если в основном нужны актуальные значения и редко нужны остальные, то имеет смысл завести отдельную таблицу для последних актуальных значений.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 14:54:42 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3440&tid=1821321]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 380ms |

| 0 / 0 |
