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

SQL запрос отчета (ПРАВКА запроса)

Автор crazyjonyster, Вересень 25, 2015, 14:36:00

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

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

crazyjonyster

Подскажите, пожалуйста, как мне изменить код (что добавить), что бы в FastReport в печатную форму можно было добавить поле "Скрыть в прайсе", то есть [DataRep."IS_PRICE_INVISIBLE"]

Сейчас код отчета такой SELECT
    tp.name as group_name
    ,t.dopoln
    ,t.num AS product_id
    ,t.name AS product_name
    ,t.kod AS product_kod
    ,t.tov_scancode AS product_scancode
    ,c.num AS post_id
    ,c.fio AS post_fio
    ,zal.sklad_id
    ,zal.z_kolvo AS z_kolvo
    ,t.#цена_тип_поле# * zal.z_kolvo AS z_suma
    ,t.#цена_тип_поле# AS price
    ,SUM( tm.from_kolvo ) AS selling_kolvo
    ,SUM( tm.from_suma ) AS selling_sum
  FROM
    tovar_name t
        LEFT JOIN tip tp on t.tip = tp.num
        LEFT JOIN client c
      ON c.num = (
      SELECT
          FIRST 1 zal_post.LAST_POST_ID
        FROM
          tovar_zal zal_post
        WHERE
          zal_post.tovar_id = t.num
          AND zal_post.last_post_id != -1
    ) INNER JOIN view_sklad_zal_all ('#дата#') zal
      ON zal.num = t.num LEFT JOIN tovar_move tm
      ON tm.tovar_id = t.num
    AND tm.doc_type_id = 1
    AND tm.from_sklad_id = zal.sklad_id
    AND tm.mdate >= '#дата_с#'
    AND tm.mdate <= '#дата_по#'
  WHERE
    #if #товар_группа_№# = 0 #then #else t.tip = #товар_группа_№#
    AND #endif #if #поставщик_№# = 0 #then #else c.num = #поставщик_№#
    AND #endif zal.sklad_id IN (
      1
      ,63
      ,41
      ,42
      ,68
      ,71
      ,72
    )
  GROUP BY
    tp.name
    ,t.dopoln
    ,t.#цена_тип_поле#
    ,zal.z_kolvo
    ,t.num
    ,t.name
    ,t.kod
    ,t.tov_scancode
    ,c.num
    ,c.fio
    ,zal.sklad_id
  ORDER BY
    c.fio
    ,c.num
    ,t.name
    ,t.num


Я посмотрел код отчета прайс лист и нашел там "t.is_price_invisible", но как его правильно и куда вставить в свой код я не могу понять! Помогите пожалуйста, если кто-то может. Админы, вы точно знаете, подскажите! ))

admin

SELECT
    tp.name as group_name
    ,t.dopoln
    ,t.num AS product_id
    ,t.name AS product_name
    ,t.kod AS product_kod
    ,t.tov_scancode AS product_scancode
    ,t.is_price_invisible
    ,c.num AS post_id
    ,c.fio AS post_fio
    ,zal.sklad_id
    ,zal.z_kolvo AS z_kolvo
    ,t.#цена_тип_поле# * zal.z_kolvo AS z_suma
    ,t.#цена_тип_поле# AS price
    ,SUM( tm.from_kolvo ) AS selling_kolvo
    ,SUM( tm.from_suma ) AS selling_sum
  FROM
    tovar_name t
        LEFT JOIN tip tp on t.tip = tp.num
        LEFT JOIN client c
      ON c.num = (
      SELECT
          FIRST 1 zal_post.LAST_POST_ID
        FROM
          tovar_zal zal_post
        WHERE
          zal_post.tovar_id = t.num
          AND zal_post.last_post_id != -1
    ) INNER JOIN view_sklad_zal_all ('#дата#') zal
      ON zal.num = t.num LEFT JOIN tovar_move tm
      ON tm.tovar_id = t.num
    AND tm.doc_type_id = 1
    AND tm.from_sklad_id = zal.sklad_id
    AND tm.mdate >= '#дата_с#'
    AND tm.mdate <= '#дата_по#'
  WHERE
    #if #товар_группа_№# = 0 #then #else t.tip = #товар_группа_№#
    AND #endif #if #поставщик_№# = 0 #then #else c.num = #поставщик_№#
    AND #endif zal.sklad_id IN (
      1
      ,63
      ,41
      ,42
      ,68
      ,71
      ,72
    )
  GROUP BY
    tp.name
    ,t.dopoln
    ,t.#цена_тип_поле#
    ,zal.z_kolvo
    ,t.num
    ,t.name
    ,t.kod
    ,t.tov_scancode
    ,t.is_price_invisible
    ,c.num
    ,c.fio
    ,zal.sklad_id
  ORDER BY
    c.fio
    ,c.num
    ,t.name
    ,t.num

crazyjonyster


crazyjonyster

Есть еще один вопрос. Для вас это дело 10 секуд...

Как правильно написать выражение (функцию) "if или IIF", что бы из поля DataRep."IS_PRICE_INVISIBLE при значении 0 в отчет выдавало "Включить", а при значении 1 - "Отключить"

То есть из поля DataRep."IS_PRICE_INVISIBLE в отчет (печатную форму) выводится 0 или 1, а мне нужно что бы выводило "Включено" или "Отключено"

admin

А зачем они тогда вообще вам в выборке, может в скрипте прописать условие чтобы выбирались товары только с IS_PRICE_INVISIBLE = 0?

crazyjonyster

Цитата: admin від Вересень 25, 2015, 16:17:08
А зачем они тогда вообще вам в выборке, может в скрипте прописать условие чтобы выбирались товары только с IS_PRICE_INVISIBLE = 0?

Мне это нужно для синхронизации с Magento. Нужно что бы товары которые скрыты в прайсе скрывались и с сайта.

Но я уже сам нашел решение:

[IIF( <DataRep."IS_PRICE_INVISIBLE"> = 1, 'Отключить',
IIF( <DataRep."IS_PRICE_INVISIBLE"> = 0, 'Включить', 'ОШИБКА'))]