Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Alex Kosobokov                       2:5020/400     15 Mar 2001  18:03:55
 To : All
 Subject : История значения
 -------------------------------------------------------------------------------- 
 
 Hi, All!
 
 Подскажите пожалуйста, как лучше построить запрос. Имеем следующее:
 
 Таблица с товарами:
 create table goods (id int identity(1,1) not null, name char(40) not null
 constraint pk_goods primary key clustered (id))
 
 Таблица с ценами:
 create table history (id int identity(1,1) not null, goods_id int not null,
 price money not null, price_date datetime not null constraint pk_history
 primary key clustered (id), constraint fk_history foreign key (goods_id)
 references goods (id))
 
 Теперь мне надо получить список товаров с ценами на определенную дату. Я
 сделал нечто вроде:
 select a.goods_id
 from history as a join
 (select max(price_date) maxdate, goods_id from history
 where price_date <= '<some date>' group by goods_id) as b
 on a.goods_id = b.goods_id
 where a.price_date <= '<some date>' and a.price_date=b.maxdate
 
 Только мне кажется, что больно медленно сия конструкция работает. Может
 можно по-другому?
 
 P.S. MS SQL 7.0 SP1
 
 С уважением, Александр Кособоков
 kosobokoff@mtu-net.ru
 --- ifmail v.2.15dev5
  * Origin: MTU-Intel ISP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 История значения   Alex Kosobokov   15 Mar 2001 18:03:55 
 Истоpия значения   Ilya V. Bursov   17 Mar 2001 11:05:59 
Архивное /su.dbms.sql/910473c53ed8.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional