Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распределение по партиям 
:(
    Опции темы
wwall
Дата 9.11.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 28.9.2006

Репутация: нет
Всего: 4



Есть 3 таблицы
ПартияОстатки (КодТовара,КодПартии,Количество,СумммаЗакупа,СуммаПродажи)
ПартияДвижения
(КодТовара,КодПартии,Количество,СумммаЗакупа,СуммаПродажи)
и ТаблицаРасходнаяНакладная
(КодТовара, Количество,Сумма)


заполненены примерно так

ПартияОстатки 
КодТовара,КодПартии,Количество,СумммаЗакупа,СуммаПродажи
 1,         1,         2,          5,          0
 1,         2,         5,          20,         0

ТаблицаРасходнаяНакладная
КодТовара, Количество,Сумма
 1,          6,          100

Надо провести в Партии так

ПартияДвижения
КодТовара,КодПартии,Количество,СумммаЗакупа,СуммаПродажи
 1,          1,       2,             5,         (100/6)*2
 1,          2,       4,             (20/5)*4,  (100/6)*4

У меня только одна мысль - бежать по курсору. Но можно ли это сделать одним запросом? или нет? Если можно то как?
PM MAIL   Вверх
programador
Дата 10.11.2006, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



Поправь меня, если ошибаюсь, но это не "чистая" MS SQL задача, смахивает на 1С. В последней не имеет принципиального значения SQL-версия это или нет. Важнее другое - про какие таблицы идет речь - "документы", "регистры" и пр.. Если я вдруг прав - уточни с какой конфой имеем дело и точную постановку задачи. Если конфа мне знакома без проблем напишу тебе запрос. Хотя, в принципе, из того что я вижу - тут дело не в запросе. Ты похоже пытаешся реализовать списание товара по методу FIFO -списывая товар сначала с более ранней партии, а потом с более поздней. Это можно сделать банальной итерацией с выборкой по партиям: получил очередную партию - проверил сколько осталось списать (больше чем в партии или меньше) - берешь меньшее значение из двух (остаток партии или остаток по списанию) и делаешь проводку по данной партии - уменьшаешь остаток по списанию и так до тех пор пока остаток количества для проведения не будет равен или меньше нуля...
PM MAIL   Вверх
wwall
Дата 10.11.2006, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 28.9.2006

Репутация: нет
Всего: 4



Да. Вы правы это 1С. Конфа - торговля самописка. Но это не имееет никакого значение. Интересует решение именно на скуле. Если я правильно понял то нужно использовать курсор? И уже бегая по нему списывать? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0384 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.