
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.07.2002, 09:37:09
|
|||
|---|---|---|---|
|
|||
Проблемы с составлением запроса с ипользованием подзапросов |
|||
|
#18+
Я пишу программу торговля в Access 2000 и MS SQL. Я столкнулся с проблемой. У меня есть таблица цен из которой по заданной дате я составляю прайс-лист. CREATE TABLE [Цены на товар] ( [Товар] int, [Дата] smalldate, [Цена] smallmoney, CONSTRAINT pk_Price PRIMARY KEY ([Товар], [Дата]) GO Мне нужно получить прайс-лист товара на указанную дату. Когда я использовал только Accsess, все было просто я использовал два запроса: 1) Запрос [Цены на дату] select [Товар], max([Дата]) where [Дата] < getdate() from [Цены на товар] group by [Товар] 2) Запрос [Прайс-лист] select [Цены на товар]. [Товар], [Цены на товар]. [Цена] where [Цены на товар].[Дата] = [Цены на дату].[Дата] and [Цены на товар]. [Товар] = [Цены на дату]. [Товар] from [Цены на товар], [Цены на дату] и это все работало. В MS SQL я использовал несколько вариантов для получения прайс-листа, но они либо не работают (1), либо работают не совсем правильно (2). 1) function [Цены на дату] (@Дата smalldate) returns table as ( select [Товар], max([Дата]) where [Дата] < getdate() from [Цены на товар] group by [Товар] ) go В этом варианте функция не возвращает таблицу из-за использования агрегатной функции max. 2) select [Цены на товар]. [Товар], [Цены на товар]. [Цена] where [Цены на товар].[Дата] in ( select max([Дата]) where [Дата] < getdate() from [Цены на товар] group by [Товар] ) [Цены на дату].[Дата] in ( select [Товар] where [Дата] < getdate() from [Цены на товар] group by [Товар] ) from [Цены на товар] В этом варианте появляются строк больше чем ожидалось, хотя подзапросы возвращают одинаковое количество строк. Если кто-то может подсказать что я могу сделать в моем случае буду ему очень благодарен. Возможно кто-то предложит другой алгоритм или таблицу для хранения цен о товаре. Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2002, 09:54:10
|
|||
|---|---|---|---|
|
|||
Проблемы с составлением запроса с ипользованием подзапросов |
|||
|
#18+
select [Цены на товар].[Товар], [Цены на товар].[Цена] from [Цены на товар], (select [Товар], max([Дата]) as [Дата] from [Цены на товар] where [Дата] < getdate() group by [Товар] ) [Цены на дату] where [Цены на товар].[Товар]=[Цены на дату].[Товар] and [Цены на товар].[Дата] =[Цены на дату].[Дата] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1821988]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 353ms |

| 0 / 0 |
