|
|
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем. есть две таблицы Sql : Prihod и Rashod структура почти одинакова Наименование товара (Name), Количество (Quantity), Склад (Sklad) и еще поля, которые в данном запросе не нужны пишу на Delphi 7 пытаюсь составить sql запрос, который позволит вычислить остаток товара на определенном складе. в таблице прихода (Prihod) есть Name - Рубашка с Sum(Quantity) = 30 и в таблице расхода (Rashod) есть Name - Рубашка с Sum(Quantity) = 20 нужно вычесть и положить в DBGrid ADOQuery1.SQL.Add('select Prihod.Name, Sum(Prihod.Quantity) from Prihod where Prihod.Sklad = ' + '''' + Form2.ComboBox1.Text + ''' Group by Name Union select Rashod.Name, -Sum(Rashod.Quantity) from Rashod where Rashod.Sklad = ' + '''' + Form2.ComboBox1.Text + ''' Group by Name'); проблема в том, что выводит данные в следующем виде: рубашка 30 рубашка -20 ну и по другим наименованиям товара тоже также... результат нужен такой: Рубашка 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 17:11 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 17:14 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 17:48 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:04 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
пишет ошибку: Неправильно определен объект Parameter, представлены несогласованные или неполные сведения... ЗЫ. правильно ли я понял, что S - стринговое значение моего склада, которое я выбираю из комбобокса? DimaBr Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:07 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
AlexeyGantsev, гугли "SQL запросы с параметрами", например - http://ebooks.semgu.kz/content.php?cont=r;1641 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:13 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
AlexeyGantsevесть две таблицы Sql : Prihod и Rashod 1. Это на одну таблицу больше, чем нужно 2. Отлаживать запросы в Delphi - не лучший выбор 3. За имена типа ADOQuery1 надо убивать 4. Динамическое формирование SQL здесь нафиг не нужно 5. Хакеры всего мира благодарят тебя за предоставленные возможности по внедрению. Это если сходу наиболее очевидные ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:14 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Наверняка Вы правы, но моя задача не стоит собрать что то масштабное, за что меня хакеры всего мира будут благодарить :) в общем необходимо реализовать именно так. softwarerAlexeyGantsevесть две таблицы Sql : Prihod и Rashod 1. Это на одну таблицу больше, чем нужно 2. Отлаживать запросы в Delphi - не лучший выбор 3. За имена типа ADOQuery1 надо убивать 4. Динамическое формирование SQL здесь нафиг не нужно 5. Хакеры всего мира благодарят тебя за предоставленные возможности по внедрению. Это если сходу наиболее очевидные ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:29 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Еще вот такое придумал, выдает один вариант, но при подключении второй таблицы (Rashod) сумма прихода возрастает в 4 раза, откуда берутся цифры непонятно :) может у кого-нибудь есть идеи, почему происходит так? ADOQuery1.SQL.Add('select Prihod.Name, Sum(Prihod.Quantity) - Sum(Rashod.Quantity) from Prihod, Rashod where Rashod.Sklad = ' + '''' + ComboBox1.Text + ''' Group By Prihod.Name'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:32 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
AlexeyGantsevЕще вот такое придумал, выдает один вариант, но при подключении второй таблицы (Rashod) сумма прихода возрастает в 4 раза, откуда берутся цифры непонятно :) может у кого-нибудь есть идеи, почему происходит так? ... 21997991 И не возвращайся, пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 20:33 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
пишу на Delphi 7 пытаюсь составить sql запросБред же. Причем тут Делфи ? Это же чистый SQL. Надо гуглить партионный учет. Хотя... этот совет услышан не будет. Там все на так просто для новичка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2019, 21:44 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Если кому-нибудь интересно вот рабочий запрос: ADOQuery1.SQL.Add('select X.Name, Sum(X.Quantity) from (select P.Name, P.Quantity from Prihod P where P.Sklad = ' + '''' + ComboBox1.Text + ''' union all select R.Name, -R.Quantity from Rashod R where R.Sklad = ' + '''' + ComboBox1.Text + ''' ) X group by X.Name'); Спасибо L_argo за " партионный учет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 20:15 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
AlexeyGantsevЕсли кому-нибудь интересно вот рабочий запрос: Пользуйтесь параметрами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 21:19 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Вам отдельная благодарность за ответ, но в силу своей неопытности сразу не смог адаптировать Ваш запрос и только после того как родил свой увидел сходство... DimaBrAlexeyGantsevЕсли кому-нибудь интересно вот рабочий запрос: Пользуйтесь параметрами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 03:44 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
ТС начали забрасывать помидорами и он не прочитал главное - 2 таблицы приход и расход это неправильно нужна только 1 таблица движений в таблице данные с + это приход, с - это расход если у тебя есть несколько видов прихода\расхода, тогда просто создать справочник, но таблица все равно только одна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 14:30 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
qwertEHOK, главное - убрать Delphi из учебной программы коррекционных школ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 14:32 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
qwertEHOKесли у тебя есть несколько видов прихода\расхода, тогда просто создать справочник, но таблица все равно только одна Не нужно загонять разные данные в одну таблицу. Приход(покупка) - это одни данные, там может быть указан поставщик, его реквизиты и прочее Приход(производство) - то что сделано собственными силами Расход(продажа) - это другие данные, там может быть указан покупатель и его данные Внутренне перемещение - это движение внутри (со склада на склад) Возврат - но это ведь не приход, но всё равно в Плюс Резервация(консервирование) - продукция, которую нельзя расходовать и т. д. И всё это загнать в одну таблицу ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 15:30 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
DimaBrПриход(покупка) - это одни данные, там может быть указан поставщик, его реквизиты и прочее Приход(производство) - то что сделано собственными силами Расход(продажа) - это другие данные, там может быть указан покупатель и его данные Внутренне перемещение - это движение внутри (со склада на склад) Возврат - но это ведь не приход, но всё равно в Плюс Резервация(консервирование) - продукция, которую нельзя расходовать и т. д. И всё это загнать в одну таблицу ? Я-бы сделал подобным-же образом. Только через развязку в одной (центральной) таблице или вьюхе - общее движение по видам, а за деталями уже ползать в свои таблицы. ЗЫ. Ещеб остатки на период сделал. Месяц, квартал или год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 15:49 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
Но нужны-ли автору такие навороты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 15:50 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
DimaBrИ всё это загнать в одну таблицу ? В одной системе, с которой я соприкасался, была такая интересная операция как смешивание. Выглядела она примерно так: на заводе стоит бочка. К ней подходит рабочий, выливает туда ведро бензола марки А. Потом подходит другой рабочий, выливает туда ведро бензола марки Б. А потом подходит третий рабочий и зачёрпывает ведро бензола. Просто, без марки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 15:56 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
softwarer, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 16:00 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
ёёёёё, ну, справедливости ради, в другой системе была операция, которая называлась "Перебивка серийных номеров". Официально. Бизнес-кейс для этой операции был следующий. Привезли аппарат на сервисное обслуживание. Клерк вбивает его номер, а система отвечает: чувак, ты охренел, аппарат с таким номером продан совсем другому клиенту в Урюпинск. И вот тут чуваку нужна кнопка: "Мамой клянусь, серийник именно такой". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 16:11 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
wadmanНо нужны-ли автору такие навороты? Вы правы, на данном этапе это все мне не нужно, но какая задача будет стоят перед проектом в будущем я незнаю, поэтому и есть разделение на две таблицы (чтобы в последующем не загнать самого себя в тупик). сейчас все что нужно было реализовать я реализовал, дальнейшее развитие проекта будет на усмотрение руководства. всем огромное спасибо за содействие и объяснения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 08:21 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
DimaBrПриход(покупка) - это одни данные, там может быть указан поставщик, его реквизиты и прочее Приход(производство) - то что сделано собственными силами Расход(продажа) - это другие данные, там может быть указан покупатель и его данные Возврат - но это ведь не приход, но всё равно в Плюс Есть "Направление движения",(+/-) есть "Вид операции" Есть "коррсчет", "вид/тип контрагента" (ФЛ, ЮЛ, Статья, сотрудник) Есть справочники/аналитики/субконто привязанные к этому "коррсчету" Так что выше вы описали совершенно одинаковые вещи, отличающиеся только типами справочников. DimaBrВнутренне перемещение - это движение внутри (со склада на склад) Немного надо подкрутить, добавив "склад получатель" и определиться с логикой - дублировать или нет эти документы и их строки по приходу. DimaBrРезервация(консервирование) - продукция, которую нельзя расходовать Делается не через документы движения. DimaBrИ всё это загнать в одну таблицу ? И довольно часто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 08:57 |
|
||
|
приход минус расход равно остаток
|
|||
|---|---|---|---|
|
#18+
982183И довольно часто. Так и в один компонент можно запихнуть весь функционал целой библиотеки. Главный вопрос - ЗАЧЕМ ? Есть приходный документ, значит существует и отдельная таблица, описывающая эту сущность. Масштабирование свойств никак не влияет на другие виды документов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 09:27 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39878686&tid=2038924]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 508ms |

| 0 / 0 |
