Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Вниз

update определенного количества записей.   Найти похожие ветки 

 
Beer   (2002-09-06 13:51) [0]

Уважаемые мастера!
Необходимо проапдейтить поле у записей, но не у всех, а у определенного количества, т.е. если в базе есть 100 записей по данному параметру отбора, а нуно изменить только 38 из них... Как это сделать красиво?

С уважением...


 
Alexandr   (2002-09-06 13:59) [1]

чего-то не то в голове


 
Mike Kouzmine   (2002-09-06 14:06) [2]

while not eof


 
Mike Kouzmine   (2002-09-06 14:07) [3]

Inc(I)
if I > 38 then Break;


 
Beer   (2002-09-09 10:06) [4]

Sorry, я забыл сказать, что с помощью средств SQL-сервера... чистый SQL запрос не подходит, т.е. хранимая процедура нужна?


 
Praco   (2002-09-09 10:24) [5]

Да, хранимая процедура
For select
...
do begin
update ...
i := i + 1;
if i > .. then exit;
end


 
Praco   (2002-09-09 10:26) [6]

Кстати, а зачем это нужно?
ИМХО подход теоретически неправильный.


 
Max Zyuzin   (2002-09-09 10:35) [7]

Можно без хранимых процедур, просто открываете НД где отобраны ваши записи, и проходите по n записям делая edit как написал ув. Praco, но вообще согласен, что не понятен сам смысл задачи... Можно ее целиком услышать?


 
Beer   (2002-09-09 12:43) [8]

Ну, делается программулька типа "Склад", списание происходит партиями, и нужно помечать не все записи данного типа, а только необходимое количество. А почему теория говорит обратное???


 
Alexandr   (2002-09-09 12:53) [9]

ну вот еще один человек склад пишет....
боже упаси меня от таких складов.
Вы лучшебы адресную книгу писали, или каталог CDRom там хоть материальной отвественности меньше.

А потом удивляемся откуда бардак в стране, пому поеза да самолеты сталкиваются...


 
Beer   (2002-09-09 13:24) [10]

Да ладно Вам... По этой программе самолеты не столкнутся и поезда под откос не пойдут, а если и будет конфликт, то в локальной области и без террактов в стране... =о)

А вместо прошения защиты у всевышнего от таких программ лучше подсказать свое видение этого вопроса...

Но в любом случае спасибо! =о)


 
Max Zyuzin   (2002-09-09 13:26) [11]

А что списпние проходит по принципу ща возьмем и спишем 10 телевизоров каких найдем? Может есть каки нибудь характеристики, выделяющие оные товары из всего списка? Ну например серийны номер товара?


 
MsGuns   (2002-09-09 13:32) [12]

>Alexandr © (09.09.02 12:53)
Речь не мальчика, но мужа !
Ребята, а не писануть ли нам типа статейки на предмет проектирования БД типовых задач типа "Склад", "Картотека кадров",
"Журнал проводок" и тому подобное. Ведь дня не проходит, чтоб подобные вопросы не возникали. И как же им не возникнуть, когда при разработке топологии БД допущены КОНЦЕПТУАЛЬНЫЕ ошибки..


 
Fareader   (2002-09-09 14:48) [13]

2MsGuns
С интересом почитал бы такую статейку :)
Зато как можно было бы коротко отвечать на такие вопросы, что-то вроде: "А не прочитать ли вам статью на www...." ;)


 
Alexandr   (2002-09-09 14:59) [14]

:)


 
Beer   (2002-09-09 15:19) [15]

> Max Zyuzin Нет, если на складе 50 отверток крестовых, то по барабану какие, их просто списывают по средней цене и все.. Их не разделишь даже по производителю..

> MsGuns Так, если есть спрос, то роди предложение... За чем дело встало??




 
Max Zyuzin   (2002-09-09 15:23) [16]

>Beer ©
Тогда заведи поле где у тебя будет хранится количество подобных вещей (товаров). Наример - название - "отвертка крестовая", количество - "100" шт. (кг., метров) и зачем в таком случае в базе хранить 100 записей?


 
Beer   (2002-09-09 15:38) [17]

> Max Zyuzin Необходимо хранить данные, кто приобрел... Видимо придется тогда для каждого, Т.е. количество записей увеличивается по количеству людей, и соответственно еще по разным ценам приобритение, т.е. еще умножается.. Необходимо еще и дату постепления хранить.. Еще умножение...
А теперь списание и алгоритм списания 40 предметов по всем записям усложняется, хотя и не намного... В одной 5 списать, потом искать дальше, где есть приемлимое количество в остатке..


 
Max Zyuzin   (2002-09-09 15:53) [18]

Странным образом идет списание... я конечно нифига не понимаю в экономике, но все же... если у тебя купили 10 отверток по 1 рублю, (а у тебя на складе числятся еще 100 таких же но из другой партии по 10руб/штука), то ты списываешь первые попавшиеся (по 10 руб), т.е. 100 руб вместо 10, которые реально купили?
Будешь проэктировать, не забудь нормализовать таблицу.


 
Val   (2002-09-09 15:54) [19]

есть такое понятие у бухгалтеров, как списание по методу FIFO, то есть берется товар самый старый на складе, списывается, если не хватает, то количество добирается из партии с датой поступления менее старой(следующей) и т.д.


 
Max Zyuzin   (2002-09-09 16:00) [20]

Ааа.. понятно :) спасиб за разеснения.


 
Val   (2002-09-09 16:00) [21]

>Max Zyuzin © (09.09.02 15:53)
цена будет усредняться.


 
Beer   (2002-09-09 16:08) [22]

> Max Zyuzin Есть понятие средняя цена, т.е. если купили 100 шт по 10 руб а потом еще 10 по рублю, то средняя цена будет (100*10+10*1)/(100+10), т.е. среднее арифметическое. Затем списываем их именно по этой цене. Т.е. считаем, что все стоят именно такую цену. При поступлении очередной партии вычисляем среднее арифметическое с оставшимися на складе.. И т.д...


 
Max Zyuzin   (2002-09-09 16:19) [23]

Чего то мы в бухгалтерию полезли :) ну да ладно. Я понял.


 
Mike Kouzmine   (2002-09-09 16:30) [24]

Если учет серийный, а если партионный, то тут и выскакивает LIFO с Фифой, а у Beer, видимо так и есть, но вопрос, о чем речь? Выбираешь карточки по номеру (ном., артикул или как кому нравиться) и начал сверху или снизу пока количество не кончится.
А на счет вопилок, что хватит склады писать, то враг не пройдет, какая стандартная бух программа справиться с гением нашей налоговой?


 
Romkin   (2002-09-09 16:36) [25]

2Beer все правильно, у тебя по средней цене... Хотя странно, конечно, штучный товар и не по партиям...
А делать ты пытаешься партионный учет, судя по вопросу, а там LIFO|FIFO
У тебя не должен товар различаться по партиям, приход идет в одну копинку, сделай таблицу (товар/колво/средняя цена) при приходе пересчитывай среднюю цену и увеличивай кол-во, при расходе - уменьшай кол-во. Все можно сделать триггерами. И при списании не надо будет выбирать строки - указал товал и кол-во, тебе прописалась средняя цена... Примечание: среднюю цену храни с 4-6 знаков после запятой, там будут хохмы со списанием остатка :-)) Например, когда останется 1 шт по цене раза в два больше максимальной приходной, из-за округления. И уточни в бухгалтерии, как округляется цена


 
Mike Kouzmine   (2002-09-09 16:43) [26]

Romkin © -> А как это "Например, когда останется 1 шт по цене раза в два больше максимальной приходной, из-за округления."


 
Romkin   (2002-09-09 17:13) [27]

Дело в том, что на складе отслеживается два баланса:
По товару (остаток = приход-расход)
и по деньгам (остаток = приход-расход)
одновременно, при этом расход может быть таким, что округление цены происходит все время в меньшую сторону, и средняя цена все время тихонько растет.
ДА, уточнение: хранить надо остаток товара и его сумму, а не среднюю цену, а то потом денежки исчезать начнут...


 
MsGuns   (2002-09-09 17:14) [28]

Уважаемые ! Какая средняя цена ? Вы о чем ? Есть несколько видов материального учета:
Товар
Малоценка
Материалы (вкл. стройматериалы, топливо, ГСМ)
Осн.средства

Метод усреднения цен действительно можно применять, но только для малоценки. Надо объяснять почему ?

Далее
>Beer
Я не знаю, конечно, топологию (состав и взаимосвязи) вашей БД, но мне почему-то кажется, что у вас отсутствуют такое понятие как "Документ". Имеется в виду не возможность ввода или печать счетов и накладных, а физический их аналог в БД. Если бы такие данные физически хранились, то Вам не притшлось бы решать ту задачу, с которой Вы начали этот сабж


 
Val   (2002-09-09 17:21) [29]

>MsGuns © (09.09.02 17:14)
Какая средняя цена ? Вы о чем ? ...
про отвертки говорим же :)
по поводу документа согласен, присоединяюсь.


 
Romkin   (2002-09-09 17:22) [30]

2MsGuns:
насчет можно/нельзя не знаю, однако в столовых продукты для готовки идут по средним ценам (товары для производства)


 
Beer   (2002-09-09 17:32) [31]

>Romkin Такую структуру нельзя, ибо, я уже показывал, необходимо учитывать от кого пришла партия, по какой цене и т.д...

>MsGuns А при чем документы для малооценки?? ДЛя основных средст конечно будет инвентарный номер, но для отверток не важно, какой документ, его и не найдешь в общей куче, но кто принес, сохранить важно... Т.е. речь просто идет о том, чтобы общее количество в текущий момент обособить, а создать таблицу поступлений, кто, когда, сколько... Я обособил тока среднюю цену, но видимо нуно и количество туда затолкать, т.е. непорядки с 3 нормальной формой... Мой косяк, согласен!

Всем спасибо!!! =о)


 
MsGuns   (2002-09-09 17:33) [32]

>Romkin © (09.09.02 17:22)
2MsGuns:
насчет можно/нельзя не знаю, однако в столовых продукты для готовки идут по средним ценам (товары для производства)

Ага, столовая ! Знаем мы этих ловкачей: завмагов, завстоловых, товароведов.. Не знаю случаев когда они с охотой внедряют у себя РЕАЛЬНЫЙ учет на компе.. Продукты - это вам не отвертки. Они изначально оприходуются как материалы только в фирмах типа кафе и пр., у которых НЕТ розничной продажи. Если же она есть (99%), то хлеб, масло, вино и пр. приходит сначала как ТОВАР. А тут уже средние цены не проходят. Иначе Вы НИКОГДА не получите РЕАЛЬНУЮ картину движения товаров по складу. И со склада списываются на производство (товар->материалы->готовая продукция->списание на затраты->реализация)


 
Val   (2002-09-09 17:35) [33]

>Beer © (09.09.02 17:32)
по одному документу может идти компьютер и всякий хлам к нему докупленный, в том числе и отвертки. Дело не в малоценке, а в понятии документа.


 
Mike Kouzmine   (2002-09-09 17:37) [34]

MsGuns © -> Метод усреднения цен действительно можно применять, но только для малоценки. Надо объяснять почему ?
Надо.
Это мое дело и я его отображаю при подаче о финансовой политике в налоговую.


 
Romkin   (2002-09-09 18:10) [35]

2Beer Тогда это уже какой-то извращенный учет :-)) Есть две схемы: LIFO & FIFO , и там в расходный документ автоматом идут либо самые давние приходы, либо самые новые, другого нет. А произвольно выбирать, из каких партий списывать запрещено :-))


 
Romkin   (2002-09-09 18:15) [36]

А по сабжу - такое делается на клиенте, в DBGrid отмечается набор записей, потом по отмеченным проходишь и формируешь что надо, на клиенте


 
Romkin   (2002-09-09 18:18) [37]

Насчет партионного учета, насколько понял, у тебя списывается из определенных приходов (у которых ведь есть цена прихода), а цена подставляется средняя... Это называется и рыбку съесть и... гм, ну,в общем, понятно. Баланс по складу в жизни не сведешь (по деньгам) копейки будут гулять


 
Mike Kouzmine   (2002-09-09 18:38) [38]

Насколько мне помниться, на складе ведется количественный учет, а не денежный. А бухгалтерия знает о такой проблеме, как округление, и у нее есть свои способы.


 
Romkin   (2002-09-09 18:54) [39]

2Mike Kouzmine Насколько понимаю, в программе и денежки есть


 
MsGuns   (2002-09-09 21:09) [40]

Спорить по поводу цен и количеств не буду принципиально, но Mike Kouzmine (09.09.02 17:37 поясню.

Есть понятие "Складская картотека". Оно было еще в незапамятные времена, когда еще не то что компов, электричества не было.
Эта самая картотека физически состояла из карточек, по одной на каждую единицу ПРИХОДОВ. Каждая такая единица (назовем ее "позиция" имела свои характеристики: наименование, ед.измерения, описание внеш.вида, к какой группе ТМЦ (товаро-материальных ценностей) относится, категория упаковки, ЦЕНА ПРИОБРЕТЕНИЯ (в дальнейшем - учетная цена) и т.д. Заметьте, от кого и когда получена - ни слова. И наконец, КОЛИЧЕСТВО В НАЛИЧИИ
Далее в такой карточке (обычно с обратной стороны картонки) следует информация о ДВИЖЕНИИ: дата, номер накладной, поставщик или покупатель, кол-во расход, кол-во приход, номер склада (магазина, киоска..) для внутр. перемещения.
При каждом движении в карточку (обратную сторону) записывается новая строка, кол-во пересчитывается и выносится на титул в КОЛИЧЕСТВО В НАЛИЧИИ.
Очень часто карточек как таковых не было. Была тетрадь (раньше - амбарная книга, сейчас - книга учета ТМЦ). Но описанный выше принцип соблюдался неукоснительно.

Со структурой картотеки ясно. Теперь о суммах (Если Вы, уважаемый, пишете только количественный учет, то мне жалко тех людей, кто будет работать с Вашей прогой, скорее всего, таковых не будет вовсе или это будут неответственные энтузиасты) Сумма, как известно, есть произведение кол-ва на цену. При допущении т.н. усредненных цен при каждом движении (приходе или расходе), определяются новое кол-во и новая сумма. Цена как таковая теряет смысл, т.к. НИЧЕГО не отображает. Для малоценки, котрая списывается относительно редко, большими партиями и,самое главное, БЕЗВОЗВРАТНО, это допустимо, особенно если учесть 2 фактора:
1. Мелкость и множественность цен при весьма большом ассортименте на одно наименование (шариковые ручки или резинки с линейками вряд ли кто-то учитывает по цвету пасты или физ.размерам
2. Отсутствие какой-бы то ни было ценности информации о поставщиках. По крайней мере с бухг. точки зрения.

Для того, что РЕАЛИЗУЕТСЯ, т.е. продается, преобразовывается в готовую продукцию (от котлеты до автомобиля), движение играет весьма важную роль. Хотя бы потому, что позволяет отследить и ,если надо, откорректировать, например, себестоимость продукции. Для товара же с его бесконечными возвратами вообще обычное явление, когда изменения вносятся в накладные, выписанные в прошлом (а то и раньше) месяце. Пояснять не буду,- спросите у любого главбуха торговой фирмы, он подтвердит сказанное. Если Вы не будете держать учетных цен, заменив их средневзвешенными, то при пересчете любой накладной (а если в ней меняется любая из строк, то ее НАДО пересчитывать), выписанной до последнего движения по товару, вы получите кашу вместо учетной суммы, а это значит, что СУММОВОЙ учет у вас просто-напросто будет липовый. И это не считая того, что штаммы типа "кол-во = 25, сумма = -20.90" будут обычным явлением.

В качестве аргументов против признАю только ссылки на конкретные широко известные программы, хорошо себя зарекомендовавшие)

С уважением. Всегда к Вашим услкгам



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.01 c
14-98310
Vlad2
2002-08-29 15:17
2002.09.30
*.avi файлы


14-98358
Николай Быков
2002-09-05 18:31
2002.09.30
Давайте меняться доками!


8-98241
Ascan
2002-05-24 19:26
2002.09.30
Распознаем текст


8-98237
skywalker
2002-02-15 16:03
2002.09.30
---|Ветка была без названия|---


14-98317
VictorT
2002-09-03 14:59
2002.09.30
NT 4.0 & USB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский