|
10 Кб. |
|
| Всем привет
подскажите хочу выбрать последнюю дату по каждому товару
делаю так :
SELECT TOP 1 [Sales Price].[Item No_], [Sales Price].[Currency Code], [Sales Price].[Starting Date], [Sales Price].[Unit Price]
FROM [Sales Price]
ORDER BY [Sales Price].[Starting Date] DESC;
|
но выводит те товары которые были залиты последними допустим от 12.09.2011 а другие товары с поздней датой не выводит
еще делал так но тж как то не айс
SELECT [Sales Price].[Item No_], [Sales Price].[Sales Code], [Sales Price].[Unit Price], (SELECT MAX([Starting Date])
FROM [Sales Price] AS [Sales1]WHERE [Sales1].[Starting Date]
< [Sales Price].[Starting Date]
AND [Sales1].[Item No_]
= [Sales Price].[Item No_]) AS [Prior Date]
FROM [Sales Price];
|
| |
|
| |
|
|
|
| Видимо группировка по товару и MAX по дате. | |
|
| |
|
|
|
| Чет не получилось а можно на моём примере | |
|
| |
|
|
|
| Сначала создаете и сохраняете как "Запрос2":
SELECT [Item No_] As Tovar, MAX([Starting Date]) As MaxDate FROM [Sales Price] GROUP BY [Item No_]; |
а основной запрос выглядит так:
SELECT [Item No_], [Currency Code], [Starting Date], [Unit Price] FROM [Sales Price]
WHERE EXISTS (SELECT * FROM Запрос2 WHERE ((Запрос2.Tovar = [Item No_]) AND (Запрос2.MaxDate = [Starting Date]))); | Можно обойтись и без сохраненного запроса, но пока попробуйте так. | |
|
| |
|
|
|
| Спасибо получилось , ток можно его как то автоматизировать по быстроте , уж очень долготвато в реально бд 20 тыс записей мурыжет ? | |
|
| |
|
|
|
| Ну еще так попробуйте:
SELECT [Item No_], [Currency Code], [Starting Date], [Unit Price] FROM [Sales Price]
WHERE ([Starting Date] = DMax('[Starting Date]', '[Sales Price]', '[Item No_]=' & [Item No_])); |
Если [Item No_] текстовое то условие в функции надо будет подправить.
Если данные нужны для отчета, то задачу можно решить по другому. | |
|
| |
|
|
|
| да [Item No_] текстовое
нет это не для отчета - на основании этого запроса будет еще один запрос но с участием другой таблицы
а каким образом подправить запрос ? | |
|
| |
|
|
|
| DMax("[Starting Date]", "[Sales Price]", "[Item No_]='" & [Item No_] & "'")) | |
|
| |
|
|
|
|
| все получилось спасибо Анатолий | |
|
| |
|
|
|
|
| я еще одно условие добавил которое сокращает число записей (ненужных) и 2ой запрос относительно быстро работает , а так на глаз 2 пошустрей | |
|
| |