Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Новое сообщение без темы Добавлено: 10.07.02 12:54  

Автор вопроса:  Petrovich
ContractNumberDateОстаток
1/00 "РК"06.01.200025,000,000.00р.
1/00 "РК"29.05.200021,875,000.00р.
9/00 "РК03.05.2000250,000.00р.
2/00 "РК"12.01.20001,500,000.00р.
2/00 "РК"17.01.20002,350,000.00р.
2/00 "РК"18.01.20003,850,000.00р.
2/00 "РК"24.01.20003,950,000.00р.
2/00 "РК"01.02.20004,000,000.00р.
1/00 "РК"29.06.200018,750,000.00р.
9/00 "РК22.06.2000188,000.00р.
9/00 "РК27.06.200099,000.00р.
9/00 "РК20.07.200037,500.00р.
12/00 "РК"05.06.2000200,000.00р.
6/00 "РК"24.03.20002,500,000.00р.
6/00 "РК"24.04.20002,292,000.00р.
6/00 "РК"26.05.20002,084,000.00р.
6/00 "РК"20.06.20001,876,000.00р.
6/00 "РК"04.07.20001,668,000.00р.

Господа, подскажите как создать запрос, выводящий последний остаток по ContractNumber или остаток на опр. дату из таблицы "история остатков"? Интуитивно чувтвую, что нужно использовать группировку, но всяк пробовал, не выходит. Я с ACCESS не очень дружу...

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Alexa_SAS



Вопросов: 11
Ответов: 12
 Профиль | | #1 Добавлено: 10.07.02 13:02

... могу рассказать только на SQL - FoxPro, к сожалению

Ответить

Номер ответа: 2
Автор ответа:
 Andreika



Вопросов: 5
Ответов: 64
 Профиль | | #2 Добавлено: 10.07.02 13:44

То, что таблица в ACCESS'е  это понятно.

 

А вот запрос где пишешь:

В конструкторе запросов ACCESS 'a;

В модуле ACCESS 'a;

Или в модуле VB ???  ???  ???

Ответить

Номер ответа: 3
Автор ответа:
 Petrovich



Вопросов: 9
Ответов: 84
 Профиль | | #3 Добавлено: 10.07.02 13:49
В конструкторе запросов ACCESS. Если кто знает, подскажите, плз. Очень срочно нужно сейчас, да и на будущее.

Ответить

Номер ответа: 4
Автор ответа:
 Andreika



Вопросов: 5
Ответов: 64
 Профиль | | #4 Добавлено: 10.07.02 14:56
 

Допустим необходимо определить последний остаток по контракту № 2/00 "РК".

 

1.Необходимо создать промежуточный запрос к нашей основной таблице, который выбирает все записи относящиеся к данному контракту, при этом эти записи необходимо отсортировать по  дате по убыванию.

Запрос1 – (SELECT Лист1.ContractNumber, Лист1.Date, Лист1.Остаток FROM Лист1WHERE ((Лист1.ContractNumber)='2/00 "РК"')) ORDER BY Лист1.Date DESC;)

 

2.Затем необходимо создать Запрос2 на основе Запроса1, в котором выбираем, с помощью групповых операций последнюю запись.

Запрос2 – (SELECT Last([Запрос1].[ContractNumber]) AS [Last-ContractNumber], Last([Запрос1].[Date]) AS [Last-Date], Last([Запрос1].[Остаток]) AS [Last-Остаток] FROM Запрос1;)

 

P.S.: Для наглядности скопируй данные SQL выражения в конструктор запросов (режим SQL), перейди в режим конструктора и думаю все будет понятно.

 

Удачи.

Ответить

Номер ответа: 5
Автор ответа:
 Petrovich



Вопросов: 9
Ответов: 84
 Профиль | | #5 Добавлено: 10.07.02 15:11

Спасибо большое за помощь. Я интуитивно пришел к подобному решению, но был не совсем уверен, правильно ли я делаю. Мне казалось, что можно это сразу в одном запросе реализовать.

 

Ответить

Номер ответа: 6
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #6
Добавлено: 10.07.02 15:13

Можно использовать запрос в запросе
Например:

SELECT * FROM TAbleName t1

WHERE Date = (SELECT MAX(Date) FROM TAbleName t2 WHERE t1.ContractNumber = t2.ContractNumber  GROUP BY Date)

Ответить

Номер ответа: 7
Автор ответа:
 Andreika



Вопросов: 5
Ответов: 64
 Профиль | | #7 Добавлено: 10.07.02 15:26

Конечно !!! Запрос в запросе и нужно делать.

А разделил я только для наглядности.

Ответить

Номер ответа: 8
Автор ответа:
 Petrovich



Вопросов: 9
Ответов: 84
 Профиль | | #8 Добавлено: 10.07.02 15:30
Еще раз всем большое спасибо. Все получилось и вроде понял как. Будем юзать SQL дальше!

Ответить

Номер ответа: 9
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #9
Добавлено: 05.03.08 08:41
Print #1, "13,56,58"; Chr(13);"13,59,60"; Chr(13);"13,73,74"; Chr(13);"14,27,28"; Chr(13);"14,34,35"; Chr(13);"14,41,42"; Chr(13);"14,43,45"; Chr(13);"14,53,54"; Chr(13);"14,55,57"; Chr(13);"14,58,59"; Chr(13);"14,67,68"; Chr(13);"14,73,74"; Chr(13);"15,27,28"; Chr(13);"15,40,41"; Chr(13);"15,44,45"; Chr(13);"15,55,56"; Chr(13);"15,59,60"; Chr(13);"15,73,74"; Chr(13);"16,27,28"; Chr(13);"16,33,34"; Chr(13);"16,39,40"; Chr(13);"16,44,45"; Chr(13);"16,55,56"; Chr(13);"16,60,61"; Chr(13);"16,68,69"; Chr(13);"16,73,74"; Chr(13);"17,26,28"; Chr(13);"17,44,45"; Chr(13);"17,55,56"; Chr(13);"17,69,70"; Chr(13);"17,73,75"; Chr(13);"18,26,28"; Chr(13);"18,32,33"; Chr(13);"18,38,39"; Chr(13);"18,44,45"; Chr(13);"18,61,62"; Chr(13);"18,69,70"; Chr(13);"18,73,75"; Chr(13);"19,26,28"; Chr(13);"19,32,33"; Chr(13);"19,56,57"; Chr(13);"19,61,62"; Chr(13);"19,69,70"; Chr(13);"19,73,75"; Chr(13);"20,26,28"; Chr(13);"20,32,33"; Chr(13);"20,37,38"; Chr(13);"20,43,44"; Chr(13);

проверка поодержки длинной строки на сайте

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам