• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Нужна помощь в создании пользовательского отчёта.

Автор deDimon, Липень 03, 2012, 15:19:27

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

deDimon

Здравствуйте, уважаемые пользователи данного форума. Подскажите пожалуйста, какой код нужно добавить в SQL-запрос в пользовательском отчёте, чтобы достать поля из БД:

  • Товар.Колво.ВУпаковке
  • Товар.Вес

Спасибо :)

TheOK

Все не так просто.
Вы-то их сможете достать. Однако, как я понимаю, вам нужно кроме этих полей вывести еще какие-то.
Нужно более подробное описание.


P.S.
Эти поля находятся в таблице tovar_name, называются TOV_VES, TOV_UPAKOVKA_COUNT соответственно

Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

deDimon

Потом мне надо будет посчитать общий вес и вычислить сколько упаковок по каждой позиции получается. В принципе я понял как это можно сделать.

P. S. Делаю что-то типа общей расходной накладной с одного склада за день. т.е. целый день заказы принимаешь, а потом под конец дня грузишь всё в машину и она развозит.

TheOK

Вам нужен вот такой запрос:




select
    tn.*,v.*,v_.*
from
    vnakl v left join vnakl_ v_ on (v.num=v_.pid),
    tovar_name tn
where
    v_.tovar_id=tn.num
    and v.date_dok='#дата#'

order by
    tn.name,tn.num



В отчете необходимо выставить параметр ДАТА
Запрос выводит список товара с др. данными по расходным накладным, за указанный день.
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

deDimon

TheOK, я вот такой код нагомнокодил, вроде должен подходить под мои задачи:

SELECT   
  s.num AS num,   
  t.name AS name,
  t.kod,     
  t.ed_izm AS ed_izm,
  t.tov_ves AS tov_ves,
  t.tov_upakovka_count  AS tov_upakovka_count,   
  SUM(s.z_kolvo) AS z_kolvo,   
  SUM(s.to_kolvo) AS to_kolvo,     
  SUM(s.from_kolvo) AS from_kolvo,   
  gr.group_name   
FROM   
  sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,   
  tovar_name t   
      LEFT JOIN currency c ON t.#цена_тип_поле_пр#_curr_id = c.num,   
  print_view_sklad(0,#склад_№#) gr
WHERE   
  s.num = t.num AND   
  t.tip = gr.num AND 
  s.from_kolvo > 0 AND
  t.visible = 1 
GROUP BY   
  gr.group_name,   
  t.name,
  t.kod,   
  s.num,   
  t.ed_izm,   
  4 
HAVING 
  (SUM(s.z_kolvo) > 0 OR SUM(s.to_kolvo) > 0 OR SUM(s.from_kolvo) >0)

но получил ошибку


DataM.QueryRep.SelectQuery
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).


Подскажите, пожалуйста где ошибка?

P. S. Переделываю существующий отчёт "Движение товара по складу".

admin

По ошибке, в селекте должно быть так:

SELECT   
  s.num AS num,   
  t.name AS name,
  t.kod,     
  t.ed_izm AS ed_izm,
  t.tov_ves AS tov_ves,
  t.tov_upakovka_count  AS tov_upakovka_count,   
  gr.group_name,
  SUM(s.z_kolvo) AS z_kolvo,   
  SUM(s.to_kolvo) AS to_kolvo,     
  SUM(s.from_kolvo) AS from_kolvo,
 

в группировке так:

GROUP BY   
  1,2,3,4,5,6,7

deDimon


TheOK

Возможно, вы сделали не то, что хотели.
В ваш отчет войдет все движение по складу (в том числе списание, производство и т.д.).
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

deDimon

Цитата: admin від Липень 04, 2012, 14:13:54
в группировке так:

GROUP BY   
  1,2,3,4,5,6,7

Тут немного подкоректировал, потому что в отчёте товар сортировался не по группам.

GROUP BY
  gr.group_name, 1,2,3,4,5,6,7

Вроде, работает.

Цитата: TheOK від Липень 04, 2012, 15:23:47
Возможно, вы сделали не то, что хотели.
В ваш отчет войдет все движение по складу (в том числе списание, производство и т.д.).
Это да. В идеале был бы вариант, когда отдельно перемещение между складами показывало и отдельно продажи т.е. 2 отчёта.

TheOK

#9
Цитата: deDimon від Липень 04, 2012, 18:58:03
Цитата: TheOK від Липень 04, 2012, 15:23:47
Возможно, вы сделали не то, что хотели.
В ваш отчет войдет все движение по складу (в том числе списание, производство и т.д.).
Это да. В идеале был бы вариант, когда отдельно перемещение между складами показывало и отдельно продажи т.е. 2 отчёта.
Для построения отчета по продажам (для ваших нужд) за выбранный день (можно изменить и под период) используйте запрос, который был выложен выше  http://www.softbalance.com.ua/forum/index.php/topic,2355.msg14058.html#msg14058
Чтобы не заморачиваться с кодом запроса просто используйте функцию суммирования , а детализацию по отчету скройте выставив значение свойства visible Бендов =false.
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

deDimon

Цитата: TheOK від Липень 04, 2012, 20:37:37
Цитата: deDimon від Липень 04, 2012, 18:58:03
Цитата: TheOK від Липень 04, 2012, 15:23:47
Возможно, вы сделали не то, что хотели.
В ваш отчет войдет все движение по складу (в том числе списание, производство и т.д.).
Это да. В идеале был бы вариант, когда отдельно перемещение между складами показывало и отдельно продажи т.е. 2 отчёта.
Для построения отчета по продажам (для ваших нужд) за выбранный день (можно изменить и под период) используйте запрос, который был выложен выше  http://www.softbalance.com.ua/forum/index.php/topic,2355.msg14058.html#msg14058
Чтобы не заморачиваться с кодом запроса просто используйте функцию суммирования , а детализацию по отчету скройте выставив значение свойства visible Бендов =false.
Спасибо большое за помощь. Буду пробовать.