Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
Здрасте. Table Tovar Name: Tovar Fields: ID_Tovar, Name, Price Table Rashod Name: Rashod Fields: ID_Rashod, ID_Tovar, Count Table Prihod Name: Prihod Fields: ID_Prihod, ID_Tovar, Count мне надобно выбрать остатки товара, т.е. с таблицы Tovar взять Имя, а с таблиц расхода и прихода вычислить остаток (prihod.count - rashod.count) как это сделать? я уже из кожи вон лезу. Вот что у меня получилось: Код: plaintext 1. 2. 3. Херня получается полная. Прошу, помогите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 10:50 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
В последний день перед отпуском плохо думается, но что если попробовать вместо sum(p.Count - r.Count) написать sum(p.Count) - sum(r.Count) as Ost Может прокатит? Кстати. Чтать форум "Проектирование БД" надо было до начала работы над БД. 8-) Что мешает слить Приход и Расход в одну таблицу? И что заставляет называть поля зарезервированным словом SQL Count? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:04 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
Уважаемый Серега. авторно что если попробовать вместо sum(p.Count - r.Count) написать sum(p.Count) - sum(r.Count) as Ost это тож самое. Видать по арифметике у вас была тройка :) (шучу). авторто мешает слить Приход и Расход в одну таблицу? Ничего не мешает, но это есть не рационально, тк сказать не нормальная база. И тут важен сам принцип. Это ж стандартный способ взятия остатков. автор И что заставляет называть поля зарезервированным словом SQL Count? Этот пример я набирал прямо в редакторе топика, потому ошибки возможни. Я просто привел пример моего мышления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:10 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
2Nauro это тож самое. Видать по арифметике у вас была тройка :) (шучу). А что у тебя собственно не идет то? Сам запрос не отрабатывает (какая хоть БД то?) или остатки не сходятся? Ничего не мешает, но это есть не рационально, тк сказать не нормальная база. И тут важен сам принцип. Это ж стандартный способ взятия остатков. Это с двумя таблицами она ненормальная, да еще с такой структурой, если ты ее не "упростил" для форума и если это не курсач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:19 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
Tovar: ID_Tovar | Name | Price 1,first,10 2,second,20 3,third,30 Prihod ID_Prihod | ID_Tovar | Kolichestvo 1,1,10 2,1,5 3,2,11 Rashod ID_Rashod | ID_Tovar | Kolichestvo 1,1,5 2,1,2 Запрос: select t.ID_Tovar, t.Name, sum(p.Kolichestvo - r.Kolichestvo) from (Tovar t left join Prihod p on t.ID_Tovar = p.ID_Tovar) left join Rashod r on t.ID_Tovar = r.ID_Tovar group by t.ID_Tovar, t.Name Результат запроса: 1,first,16 2,second,null 3,second,null Желаемый результат: 1,first,7 2,second,0 3,third,0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:32 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
поправочка: Результат запроса: 1,first,16 2,second,null 3, third ,null Желаемый результат: 1,first,7 2,second,0 3,third,0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:33 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
Ну а "мой" вариант запроса - не пробовал? Prihod ID_Prihod | ID_Tovar | Kolichestvo 1,1,10 2,1,5 3,2,11 Rashod ID_Rashod | ID_Tovar | Kolichestvo 1,1,5 2,1,2 Желаемый результат: 1,first,7 2,second,0 У кого тут с математикой то было все ОК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:45 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
Да и по 1 дожно быть 8 (+10+5-5-2) а не 7. Желать надо возможного. 8-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:48 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
вот по твоему: Код: plaintext 1. 2. 3. возвращает то же самое! 1, first, 16 2, second, null 3, third, null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 12:09 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
попробуй select t.ID_Tovar, t.Name, sum(IsNull(p.Kolichestvo,0)) - sum(IsNull(r.Kolichestvo,0)) from Tovar t left join Prihod p on t.ID_Tovar = p.ID_Tovar left join Rashod r on t.ID_Tovar = r.ID_Tovar group by t.ID_Tovar, t.Name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 12:48 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
Вопрос снимаю. Дело было в СУБД. Все работает. Но я всеравно решил пойти по другому пути и написал трикера, кторые при изменении данных в расходе/приходи пересчитываю остатки. если кому интереснто могу поделится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 10:34 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
сорри, я имел ввиду "тригера" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 10:35 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
создай View типа Код: plaintext 1. 2. 3. например для расчета остатков Код: plaintext А лучше всего ИМХО актуальные остатки хранить в отдельной таблице и пересчитывать в момент создания либо приходного, либо расходного документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 15:27 |
|
||
|
Остатки склада
|
|||
|---|---|---|---|
|
#18+
слить Приход и Расход в одну таблицу Только так! но это есть не рационально, тк сказать не нормальная база. Это ж стандартный способ взятия остатков А где можно посмотреть этот стандарт??? Каких только извратов не придумают люди. Все сливаешь в одну таблицу. Они же абсолютно одинаковые по структуре и по смыслу. А регистры по остаткам можно сажать на что угодно. Но дело то не в этом! Отатки у тебя только на текущий момент. А если нужны станут за какой-то месяц? Или еще как? На дату какую-то? Так что смысл хранить эти самые остатки тольков в том чтобы их быстренько выдавать бухгалтеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 12:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32552647&tid=1546424]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
64ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 459ms |

| 0 / 0 |
