![]() |
|
Модераторы: Akina |
![]()
|
|
| Ptica |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 27.7.2004 Репутация: нет Всего: 2 |
Господа!
Подскажите, как составить SQL-запрос. Задача приблизительно следующая. Есть таблица с бухгалтерскими проводками. Для каждой проводки есть код поставщика. Поставщиков много. По каждому поставщику есть множество проводок. Необходимо составить запрос так, чтобы его результат включал по одной записи для каждого поставщика, причем это должны быть записи проводок, внесенные последними. Например, по поставщику 001 были проводки в среду, четверг и пятницу, так вот в результат запроса должна попасть только пятничная проводка. А по поставщику 567 единственная проводка была год назад, и она тоже должна войти в запрос, как "последняя для данного поставщика". При определении "последнести" проводки решающую роль играет хронология физического внесения записей (сортировка идет по коду поставщика, а затем по автоинкрементному полю). Можно ли обойтись одним запросом, без организации циклов, промежуточных таблиц и т.д.? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Так через MAX() и в условии поставить HAVING - разве не получиться ?
|
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 15 Всего: 35 |
Ptica, скорее всего запрос в запросе поможет решить проблему.
Внутрений запрос, что б найти max для каждого поставщика, внешний - выдать проводку. Для более детального обсуждение, требуется структура таблицы. -------------------- Никогда не говори никогда |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Не понимаю... если дата/время коррекции - критична, то почему в структуре нет даты/времени внесения коррекции записи?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Ptica |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 27.7.2004 Репутация: нет Всего: 2 |
В общем, вот к чему я пока пришел:
Если есть что-то лучшее, предлагайте! Для простоты можно считать, что структура базы такая:
Akina Вопрос правомерен. Просто я по ряду причин посчитал для себя удобным иметь в структуре автоинкрементное поле, а дату/время внесения записей пока не использовал, хотя ее тоже, наверное, неплохо бы иметь... я подумаю. Это сообщение отредактировал(а) Ptica - 20.12.2004, 17:43 |
||||
|
|||||
| boevik |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 15 Всего: 35 |
На это я и намекал. Можно ещё такой запрос:
Но не уверен, что он лучше твоего -------------------- Никогда не говори никогда |
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Ptica
Мало того что наличие и того, и другого поля не противоречит логике - оно вполне уместно. Автоинкремент ака счетчик - ключевое поле, а дата/время коррекции - информационное. Причем в твоем случае оно содержит значимые данные. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Ptica |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 27.7.2004 Репутация: нет Всего: 2 |
Спасибо всем откликнувшимся!
|
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |