Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Мне нужно написать функцию, которая увеличивает стоимость товара на 5% от его предыдущей стоимости при каждой следующей покупке. То есть если его купили первый раз, то цена остается начальной (столбец Стоимость в таблице Товар); если его купили второй раз, то цена увеличивается на 5% от начальной; если в третий - цена увеличивается на 5% от второй и так далее. Во вложениях скрипт базы и тестовые данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 19:03 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Почему именно функция? По идее будет триггер, срабатывающий на вставку в таблицу [Содержимое_чека], и меняющий значение поля [Товар].[Стоимость]. Примерно так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. При этом у вас в таблице [Содержимое_чека] есть большой-большой косяк: нет цен. То есть не будет возможности посмотреть, по какой цене был продан товар. У вас есть только текущая цена и только содержание чека. И дат нет. Ещё я бы сделал поля [Товар].[Название], [Товар].[Стоимость], [Содержимое_чека].[Количество] NOT NULL. Ну и добавил поля: [Содержимое_чека].[Стоимость_продажи], [Содержимое_чека].[Стоимость_по_ценнику], поля с датами, и всё это строго NOT NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 19:58 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Андрей Юниор, База по заданию такая и должна быть, в этом сложность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 20:03 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
То есть должна быть строго функция... Хорошо. Тогда напишите пример, как должно выглядеть правильное использование функции. Я задание не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 20:18 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Андрей Юниор, Вот такая задумка была сначала, но тут увеличивает 5% только от начальной цены. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 20:24 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Меня интересует в первую очередь ИСПОЛЬЗОВАНИЕ функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 20:36 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
ally-a Код: sql 1. Понял. Нужно чеки пронумеровать с помощью https://docs.microsoft.com/ru-RU/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-2017 (ранжирующие функции, наверное). А потом умножить исходную цену на (1.05)^{номер по порядку возрастания}. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2019, 20:44 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
У тебя БД гамно плохая. При каждом изменении цены товара она будет меняться во всех чеках, даже в которых она была на момент создания чека совсем другой. И еще, осилил бы ты юникод, коль уж кириллицу используешь, 2020 год уже на подходе как-никак :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 00:10 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
fkthatУ тебя БД гамно плохая Это задание. Скорее всего в ВУЗ'е. Я даже написал небольшую тираду на тему бессмысленности и вредности подобных учебных примеров, но решил воздержаться - божий день всё-таки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 00:15 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Андрей ЮниорЭто задание. Скорее всего в ВУЗ'е. Ну слав Богу! А то я уже хотел начать спрашивать, что за наименование магазина такого волшебного, чтоб никогда туда не заходить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 09:20 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Ну так и напишите функцию CalcnewPrice, обычную скалярную с одним параметром : цена предыдущей продажи и цвторым параметром - цена товара из справочника . В ней умножьте цену на 1.05 :D если первый параметр Not Null или верните просто второй параметр. Ну а во внешнем запросе через LAG считайте значение цены из предыдущей продажи (вернёт Null если таковой не было). Это и будет ваш первый параметр для функции. Саму функцию зовёте в том же селекте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 13:09 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
PS: если преподаватель попросит делать селекты в функции, можете смерить его скептическим взглядом а-ля Шелдон Купер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 13:13 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
А через цикл WHILE это можно как-то сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 20:32 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
ally-a А через цикл WHILE это можно как-то сделать? Зачем цикл? Что у вас не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 22:54 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Если честно, ничего не получается. А цикл - первое, что в голову приходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 23:24 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Первое, что должно приходить в голову, чёткая постановка задачи. А у вас задача в разных сообщениях формулируется противоречиво. В первом сообщении требуется изменять данные в таблицах: ally-a Мне нужно написать функцию, которая увеличивает стоимость товара на 5% от его предыдущей стоимости при каждой следующей покупке. То есть если его купили первый раз, то цена остается начальной (столбец Стоимость в таблице Товар); если его купили второй раз, то цена увеличивается на 5% от начальной; если в третий - цена увеличивается на 5% от второй и так далее. Во вложениях скрипт базы и тестовые данные. Во другом сообщении, где вы объявляете функции, вы просто возвращаете номер чека и стоимость. При этом на входе в функцию у вас не задач параметр - я предположу, что тут должен быть товар, и функция должна вернуть таблицу по конкретному товару (иначе каша): ally-a Код: sql 1. 2. Так что вам в итоге требуется: изменить стоимость товара в [dbo].[Товар] или просто вернуть цену товара в чеках? Как в дословно сформулировано задание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 23:41 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Дословно: Создать функцию, формирующую новые стоимости для товаров: каждая новая покупка увеличивает стоимость на 5%. Оригинальную таблицу [dbo].[Товар] менять не нужно. Только функция, которая возвращает новые посчитанные цены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 23:56 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Проверить не могу, так как у вас ошибки в заполнении таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 00:39 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Эта функция просто выводит цены товаров, а мне нужно, чтобы она вывела НОВЫЕ цены, которые меняются вместе с количеством заказов этих товаров. В оригинальной таблице мнет не нужно их менять, мне нужно чтобы функция показала новые цены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 00:45 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 04:39 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
ally-a Эта функция просто выводит цены товаров, а мне нужно, чтобы она вывела НОВЫЕ цены, которые меняются вместе с количеством заказов этих товаров. В оригинальной таблице мнет не нужно их менять, мне нужно чтобы функция показала новые цены. У вас цены меняются вместе с количеством заказов. Значит в выводе должна быть история цены на товар? 1 - 100 2 - 105 3 - 110.25 4 - ... Возможно должен быть порядок какой то, который вы не сообщаете нам. ally-a НОВЫЕ цены, которые меняются Звучит крайне абстрактно. Сами что ли меняются прям на экране мигают и скачут по всем строчкам? Покажите как должен выглядеть результат по вашему мнению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 06:19 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
ally-a А цикл - первое, что в голову приходит. А вы точно базы данных изучаете, теорию множеств и все такое? Вроде первому, чему учат, это думать множествами, а не переборами значений. БД это не регулярное программирование, а если будете применять подходы из, скажем так, не-декларативного программирования, то будете страдать и писать неэффективный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 06:27 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
ally-a Эта функция просто выводит цены товаров, а мне нужно, чтобы она вывела НОВЫЕ цены, которые меняются вместе с количеством заказов этих товаров. Функция выводит последнюю цену с учётом количества чеков с данным товаром - формально это и есть НОВЫЕ цены - после внесения очередного чека стоимость товара пересчитывается. Если нужна БУДУЩАЯ цена, то нужно показатель степени увеличить на 1: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 10:44 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Вы можете переделать этот код, чтобы он считал ДЛЯ КАЖДОГО ТОВАРА, КОТОРЫЙ ЕСТЬ В ТАБЛИЦЕ [Содержимое_чека], а не для вводимого мной? И чтобы выводилась не только получившаяся цена, но и код_товара. То есть, таблица, в которой [Код_товара] и [Цена] Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 11:17 |
|
||
|
Как написать функцию, которая формирует новые цены для товаров?
|
|||
|---|---|---|---|
|
#18+
Объясните, чем вас не устраивают предложенные варианты. Вы их выполняли? Проверяли правильность? Если проверяли, то именно считается неправильно? Предоставьте исходные данные и правильный ответ. Советую порешать задачи на sql-ex.ru, чтобы понять, что такое sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 11:44 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=80&tid=1686932]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 301ms |

| 0 / 0 |
