|
|
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста! Есть у кого-нибудь готовая база данных для склада? Для курсача надо! мыло: nikishist@mail.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 20:55 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
SenZhermen, Кладовщики (КодСотрудника,Ф,И,О,), МатОтветст (КодМО,КодСотрудника) Товар(НоменклатурныйНомерТовара,НаименованиеТовара,Цена), Склад(НомерСклада,НоменклатурныйНомерТовара,КоличествоТовараНаСкладе), Контрагент(КодКонтрагента,Наименование,ОКПО, Код плательщика НДС, РасчетныйСчет,МФО), Банк (МФО,НаименованиеБанка), Накладная (КодНакладной, НомерНакладной,ДатаНакладной, КодКонтрагента,КодМО,ВидОперации(сдал,получил), КодСотрудника,КодТовара,Количество) в таблицу Накладная идут связи из остальных таблиц по одноименным столбцам База в access, для курсача не западло и ручками в mssql импортировать :) взято отсюда cyberforum.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 21:18 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, но таблицы в ms sql я уже сделал, но у меня проблема по части написания процедур всяких и т.п. В принципе, мне бы очень помогло, если бы вы мне подсказали как сделать процедуру, которая будет выводит кол-во товаров на начало дня и на конец. А так же, что бы остаток на конец предыдущего дня воспринимался как остаток на начало следующего. Заранее, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 22:15 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
у меня следующие сущности: приходный оредер ( дата, номер, id ордера), списко приходного ордера( id ордера, id товара, кол-во товара), товар ( id товара, название товара, ед. изм., id товарной группы, цена, id склада), акт о списании и расходный оредер идентичны приходному ордеру, списки акта о списании и расходного оредера идентичны списку приходного ордера. так же еще есть склад, товараня группа и итого. в итого должны быть дата, остаток на начало и остаток на конец. вот в принципе с этим итого я и мучаюсь. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 22:23 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
SenZhermenСпасибо большое, но таблицы в ms sql я уже сделал, но у меня проблема по части написания процедур всяких и т.п. В принципе, мне бы очень помогло, если бы вы мне подсказали как сделать процедуру, которая будет выводит кол-во товаров на начало дня и на конец. А так же, что бы остаток на конец предыдущего дня воспринимался как остаток на начало следующего. Заранее, спасибо! Я такие задачки на собеседование спрашиваю, когда рекрутов нанимаю. Если не умеют даже прикинуть, то дело шлак. С ходу есть как минимум 2 решения. У Вас какой курс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 02:36 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Про склад хорошо знает прапорщик (старшина). Это который в армии. Надо у него поспрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 11:24 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Volochkova, тогда вам наверняка не составит труда предложить мне эти два решения, за что буду очень признателен. Я надеюсь, что ваш пост не был просто направлен на то, чтобы указать на мое невежество. LSV, смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 19:02 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
SenZhermenVolochkova, тогда вам наверняка не составит труда предложить мне эти два решения, за что буду очень признателен. Я надеюсь, что ваш пост не был просто направлен на то, чтобы указать на мое невежество. LSV, смешно. Мне то как раз легко. Жаль что Вы даже курс не указали. Про ваше якобы что то там мне не интересно. Меня больше волнует, что от года к году качество выпускников сильно страдает... а местами ИТ да со знанием финансов вообще не найти... Ну да ладно... Задания не вылизываю до варианта с тестовыми данными, как я даю рекрутам. Но узкие места (ловушки) будут показаны. И так... на входе у Вас две даты, причем Дата 1 <= Дата 2 и ID Склада ( @D1 smalldatetime, @D2 smalldatetime, @SkladID smallint Также есть следующие таблицы Даты везде без часов и минут. Т.е. дата это 2011-11-01... SP_Product - ( ProductID int, ParentID int, PrName varchar(200) ) - Справочник товаров REG_ProductMove ( RegData smalldatetime, SkladID smallint, ProductID int, CO tinyint, Rest decimal(12,4)) - Регистр движения товаров по складам CO - Com/OutCome - 1 Приход. 0 Выбытие. За битовое поле агитацию разводить не надо. Rest - всегда >= 0 1. Left JOIN (Подзапросы) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 2. Второй вариант ( мне самой так нравится больше) "Эффект сыра" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Черновики собственно вот они. Далее пошли нюансы. 1. В Варианте 1 выводится весь каталог. Чтобы фильтрануть только те, по которым есть остатки или движения то надо добавить Where ISNULL(RestBegin.A1,0) + ISNULL(RestCome.A2,0) + ISNULL(RestOutCome.A3,0) + ISNULL(RestBegin.A4,0) >0 2. Почему именно left join. Потому что можно получить ситуацию, что товара не было на остатках, его купили и продали. Если это попадает в период @D1, @D2 то с inner join получится ой. 3. Если надо вывести весь каталог в Варианте 2 то финальный INNER JOIN меняется на LEFT В тексте могут быть очепятки.... но логика думаю понятна. В принципе лет 10 тому обратно два решения мне с ходу выдавали. Интерес к рекрут появлялся когда он мог сказать 1) при каких условиях данные отчеты могли показывать некорректные данные. А именно, остаток на конец периода может не быть равным сумме остатка на начало сумма всех приходов и минус все расходы. 2) Как, изменив код процедуры ( а это все процедура) можно решить проблему номер 1) и повысить скорость работы работы отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 02:50 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Volochkova, чем хуже качество выпускников, тем ценнее Вы как специалист) А я как раз и являюсь тем выпускником с плохим качеством, что и заметно. А судя по студентам двух специальностей на нашей кафедре, которые связаны как раз с ИТ в экономической сфере, за 5 лет из нас не получилось ни экономистов, ни программистов. Огромное спасибо за подробное разъяснение! Буду пробовать, обязательно опишусь об успехах. Еще раз спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 19:48 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
SenZhermenVolochkova, чем хуже качество выпускников, тем ценнее Вы как специалист) А я как раз и являюсь тем выпускником с плохим качеством, что и заметно. А судя по студентам двух специальностей на нашей кафедре, которые связаны как раз с ИТ в экономической сфере, за 5 лет из нас не получилось ни экономистов, ни программистов. Огромное спасибо за подробное разъяснение! Буду пробовать, обязательно опишусь об успехах. Еще раз спасибо за помощь! ИТ это как paintball. Это командная игра. Думаю Вы понимание про что я. Один за всех все не сделает и не переделает. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2011, 04:29 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Volochkova, попробовал оба варианта. Создал процедуру, в обоих случаях таблицу выводит, но значения по всем пунктам - 0. Регистр движения товаров по складам заполнил, конечно же. Ума не приложу в чем дело. Правда пока делал во многом разобрался! Спасибо, вам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 19:44 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
SenZhermenVolochkova, попробовал оба варианта. Создал процедуру, в обоих случаях таблицу выводит, но значения по всем пунктам - 0. Регистр движения товаров по складам заполнил, конечно же. Ума не приложу в чем дело. Правда пока делал во многом разобрался! Спасибо, вам! К сожалению мой штатный медиум в отпуске. Где процедура? Где Ваши данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2011, 04:00 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Процедура: @D1 smalldatetime, @D2 smalldatetime, @ID_SKLAD smallint as Select t.ID_TOV, t.NAME_TOV, ISNULL(RestBegin.A1,0) As KolProdBegin, ISNULL(RestCome.A2,0) As KolProdCome, ISNULL(RestOutCome.A3,0) As KolProdOutCome, ISNULL(RestEnd.A4,0) As KolProdEnd From dbo.TOV as t LEFT JOIN ( Select ID_TOV, Sum(REST ) As A1 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG <@D1 Group by ID_TOV) As RestBegin on t.ID_TOV = RestBegin.ID_TOV LEFT JOIN ( Select ID_TOV, Sum(REST ) As A2 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG >=@D1 And DATA_REG <=@D2 And CO = 1 Group by ID_TOV ) As RestCome on t.ID_TOV = RestCome.ID_TOV LEFT JOIN ( Select ID_TOV, Sum(REST ) As A3 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG >=@D1 And DATA_REG <=@D2 And CO = 0 Group by ID_TOV ) As RestOutCome on t.ID_TOV = RestOutCome.ID_TOV LEFT JOIN ( Select ID_TOV, Sum(REST ) As A4 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG <=@D2 Group by ID_TOV ) As RestEnd on t.ID_TOV = RestBegin.ID_TOV Order by t.NAME_TOV Таблица товаров: http://s017.radikal.ru/i428/1111/b7/cd2b76801fb7.jpg Таблица регистра движения товаров: http://s49.radikal.ru/i123/1111/30/f15260afd6a3.jpg Результат выполнения процедуры: http://s16.radikal.ru/i191/1111/34/0133dd33edb6.jpg Единственное ,что меня смущает (и может в этом и ест mrjhtym всех проблем), мне кажется, я неправильно задаю дату, не в том формате или что-то. на 24.11.2001 - выдает ошибку, не нравится .2011 . C 2011-11-24 не нравится "-". Если пишу 24.11? то показывает таблицу с нулями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2011, 15:59 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
Я бы так сказала.... Так еще идею не портили ) 1. Скрипты на создание таблиц... где? 2. Скрипт на заполнение данными? 3. С датами вообще жесть... А если так Код: plaintext 1. 2. У меня есть подозрения что у Вас формат даты - русский Код: plaintext 1. 2. И запускать процедуру Код: plaintext p.s. В целом... Ваша структура.... сильно коробит.... Видимо старею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2011, 12:39 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
VolochkovaЯ бы так сказала.... Так еще идею не портили ) Я старался) Ну ладно уж, это мои самые первые шаги в ms sql!) C датой разобрался. При вызове процедуры теперь таблица с количеством товаров возвращаеся. Но остаток не считается. К примеру: http://s017.radikal.ru/i404/1111/f1/434ff07edeb9.jpg По сути, в 4-ой строке остаток должен быть равен 30. Не говоря уже о том ,что везде в остатке ноль пишет. Или вот: http://s017.radikal.ru/i435/1111/1f/50e25a96749e.jpg Почему-то аж три строчки с одним и тем же товаром и занчением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2011, 20:18 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
SenZhermen, Я помню, как сдавала на права.... Дала честное слово.. что пока не научусь ездить, за руль авто на коробке не сяду ) Давайте так... Или Вы сюда постите скрипты на таблички ну и на данные и саму процедуру или процесс затянется на года.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2011, 02:19 |
|
||
|
База данных для склада
|
|||
|---|---|---|---|
|
#18+
До чего молодеШЬ пошла!!! .... даже списать толком и то не умеют!!!!! У него кол-во на конец периода некорректный.... Select t.ID_TOV, t.NAME_TOV, ISNULL(RestBegin.A1,0) As KolProdBegin, ISNULL(RestCome.A2,0) As KolProdCome, ISNULL(RestOutCome.A3,0) As KolProdOutCome, ISNULL(RestEnd.A4,0) As KolProdEnd From dbo.TOV as t LEFT JOIN ( Select ID_TOV, Sum(REST ) As A1 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG <@D1 Group by ID_TOV) As RestBegin on t.ID_TOV = RestBegin.ID_TOV LEFT JOIN ( Select ID_TOV, Sum(REST ) As A2 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG >=@D1 And DATA_REG <=@D2 And CO = 1 Group by ID_TOV ) As RestCome on t.ID_TOV = RestCome.ID_TOV LEFT JOIN ( Select ID_TOV, Sum(REST ) As A3 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG >=@D1 And DATA_REG <=@D2 And CO = 0 Group by ID_TOV ) As RestOutCome on t.ID_TOV = RestOutCome.ID_TOV LEFT JOIN ( Select ID_TOV, Sum(REST ) As A4 From dbo.REGISTR Where ID_SKLAD = @ID_SKLAD and DATA_REG <=@D2 Group by ID_TOV ) As RestEnd on t.ID_TOV = RestBegin .ID_TOV Order by t.NAME_TOV Блин.. ну уж списывать то в ВУЗЕ должны были научиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2011, 02:23 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37537691&tid=1541925]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 454ms |

| 0 / 0 |
