SQL запрос
Суть проекта:
Есть программа кассового регистра (POS система, Unicenta Opos) работает с базой данных MSQL.
Внутри программы есть формализированный отчет:
report = new com.openbravo.pos.reports.PanelReportBean();
report.setTitleKey("Menu.Customers.Reports.Sales");
report.setReport("/com/openbravo/reports/customers_sales");
report.setResourceBundle("com/openbravo/reports/customers_messages");
report.setSentence("SELECT " +
"customers.NAME AS CNAME, " +
"receipts.DATENEW, " +
"tickets.TICKETID, " +
"products.NAME AS PNAME, " +
"tickets.TICKETTYPE, " +
"SUM(ticketlines.UNITS) AS UNITS, " +
"SUM(ticketlines.UNITS * ticketlines.PRICE) AS TOTAL " +
"FROM receipts, customers, tickets, ticketlines LEFT OUTER JOIN products ON ticketlines.PRODUCT = products.ID " +
"WHERE customers.ID = tickets.CUSTOMER AND ticketlines.PRODUCT = products.ID AND receipts.ID = tickets.ID AND tickets.ID = ticketlines.TICKET AND ?(QBF_FILTER) " +
"GROUP BY customers.NAME, receipts.DATENEW, tickets.TICKETID, products.NAME, tickets.TICKETTYPE " +
"ORDER BY customers.NAME, products.NAME, receipts.DATENEW");
report.addParameter("receipts.DATENEW");
report.addParameter("receipts.DATENEW");
paramdates = new com.openbravo.pos.reports.JParamsDatesInterval();
paramdates.setStartDate(com.openbravo.beans.DateUtils.getToday());
// JG - 8 Jan 14 paramdates.setEndDate(com.openbravo.beans.DateUtils.getToday());
paramdates.setEndDate(com.openbravo.beans.DateUtils.getTodayMinutes());
report.addQBFFilter(paramdates);
report.addParameter("customers.ID");
report.addParameter("customers.NAME");
report.addQBFFilter(new com.openbravo.pos.reports.JParamsCustomer());
report.addField("CNAME", com.openbravo.data.loader.Datas.STRING);
report.addField("DATENEW", com.openbravo.data.loader.Datas.TIMESTAMP);
report.addField("TICKETID", com.openbravo.data.loader.Datas.STRING);
report.addField("PNAME", com.openbravo.data.loader.Datas.STRING);
report.addField("TICKETTYPE", com.openbravo.data.loader.Datas.INT);
report.addField("UNITS", com.openbravo.data.loader.Datas.DOUBLE);
report.addField("TOTAL", com.openbravo.data.loader.Datas.DOUBLE);
report;
Он выводит данные по обороту по клиенту.
Мне необходимо написать SQL запрос который бы брал данные по обороту клиента, в зависимости от суммы умножал его на некоторое значение (от 0 до 2000 - 0,02, от 2000 до 3000 - 0,03, от 3000 до 5000 0,04, более 5000 0,05) и записывал его в другую таблицу в рамках одной бд. Значение должно обновляться и перезаписываться каждый раз.
Данный запрос поставить в автоисполнение раз в месяц (каждого 5го числа) через тоад, или любой удобный Вам инструмент.
Кому интересно это скидочная программа.
-
4062 73 1 Здравствуйте
Сам по себе это простой запрос на перенос данных в другую таблицу и умножение на коэффициент по условию.
Но в рамках описания возникли следующие вопросы:
1. Оборот клиента за какой период времени?
2. Какая "другая" таблица?
3. Что означает "поставить на автоисполнение"? Вы хотите, чтобы исполнитель это поставил или вы сами запрос поставите? Если исполнитель, то исполнителю нужен будет доступ к системе.
… (бюджет и срок указан минимально допустимый, т.к. для оценки трудоемкости недостаточно данных)
-
79 2 0 Добрый день!
Для реализации данного ТЗ хотелось бы увидеть дамп БД или доступ к БД.
С уважением, Дмитрий.
тел. 0689098703 , 0997935980.
-
36 Готов взяться за работу. Имеется большой опыт работы с MySQL.
Пишите сюда или в скайп mzol16