Автор Тема: Помощь в SQL запросе  (Прочитано 162 раз)

0 Пользователей и 1 Гость просматривают эту тему.

cola78

  • Младший Пользователь
  • **
  • Сообщений: 32
  • Репутация: 1
Помощь в SQL запросе
« : Апрель 08, 2021, 12:52:01 »
Написал SQL запрос для отображения группы документов по розничному покупателю для того, чтоб найти ошибочный прибыльный ордер (не прикрепленный к розничной накладной)

SELECT
    GROUP_id, FIO, NAME,NU, DATE_DOK,SUMA_PDV
    FROM
    SHOW_DOCS_GROUPS(3,'01.01.2016','31.03.2021')
    WHERE  FIO='Розничный покупатель'

Мне нужна группа, где количество документов 1. Для этого нужно сгруппировать данные. Если дописываю
SELECT
    GROUP_id, FIO, NAME,NU, DATE_DOK,SUMA_PDV
    FROM
    SHOW_DOCS_GROUPS(3,'01.01.2016','31.03.2021')
    WHERE  FIO='Розничный покупатель'
GROUP BY GROUP_id
группирую по номеру группы, выдает такую ошибку (смотреть рисунок)

Помогите, кто чем может.


molotokk

  • =)
  • Помогающий
  • *****
  • Сообщений: 402
  • Репутация: 46
  • Пол: Мужской
  • Carpe Diem
Re: Помощь в SQL запросе
« Ответ #1 : Апрель 08, 2021, 13:47:48 »
SELECT
    GROUP_id, FIO, NAME,NU, DATE_DOK,SUMA_PDV
    FROM
    SHOW_DOCS_GROUPS(3,'01.01.2016','31.03.2021')
    WHERE  FIO='Розничный покупатель'
GROUP BY GROUP_id

А не має бути вкінці ORDER BY
або ось так:
GROUP BY
  GROUP_id
допомога в налаштуваннях програми

cola78

  • Младший Пользователь
  • **
  • Сообщений: 32
  • Репутация: 1
Re: Помощь в SQL запросе
« Ответ #2 : Апрель 08, 2021, 14:01:43 »
А не має бути вкінці ORDER BY
або ось так:
GROUP BY
  GROUP_id

К сожаленью тот же результат

admin

  • Админ
  • Помогающий
  • *****
  • Сообщений: 7098
  • Репутация: 1156
  • Пол: Мужской
    • УкрБланк, УкрСклад, УкрЗарплата, Унидок
Re: Помощь в SQL запросе
« Ответ #3 : Апрель 08, 2021, 16:14:36 »
группирую по номеру группы, выдает такую ошибку (смотреть рисунок)
Помогите, кто чем может.

Вы не понимаете сути группировки в SQL. Группировки практически не бывает без агрегатных функций, т.к. вся суть группировки теряется. Вот например _http://old.code.mu/sql/group-by.html
« Последнее редактирование: Апрель 08, 2021, 16:41:14 от admin »

cola78

  • Младший Пользователь
  • **
  • Сообщений: 32
  • Репутация: 1
Re: Помощь в SQL запросе
« Ответ #4 : Апрель 08, 2021, 17:16:35 »
Вы не понимаете сути группировки в SQL. Группировки практически не бывает без агрегатных функций, т.к. вся суть группировки теряется. Вот например _http://old.code.mu/sql/group-by.html

Без GROUP BY сделал в редакторе шаблонов добавил заголовок группы данных и подсчет количества документов в группе через подвал группы данных (смотреть на рисунке). Работает все правильно.
Но мне нужно, чтобы отображались группы, в которых только 1 документ

molotokk

  • =)
  • Помогающий
  • *****
  • Сообщений: 402
  • Репутация: 46
  • Пол: Мужской
  • Carpe Diem
Re: Помощь в SQL запросе
« Ответ #5 : Апрель 08, 2021, 17:20:43 »
А може просто відсортуйте по кількості документів?
допомога в налаштуваннях програми

cola78

  • Младший Пользователь
  • **
  • Сообщений: 32
  • Репутация: 1
Re: Помощь в SQL запросе
« Ответ #6 : Апрель 09, 2021, 08:14:24 »
А може просто відсортуйте по кількості документів?
В мене немає такого поля в SQL-запиті. Для цього треба згрупувати і підрахувати кількість в кожній групі, замкнуте коло)

molotokk

  • =)
  • Помогающий
  • *****
  • Сообщений: 402
  • Репутация: 46
  • Пол: Мужской
  • Carpe Diem
Re: Помощь в SQL запросе
« Ответ #7 : Апрель 09, 2021, 12:05:51 »
Як ви робите? через створення нового звіту? Якщо так - скиньте шаблон звіту
допомога в налаштуваннях програми

cola78

  • Младший Пользователь
  • **
  • Сообщений: 32
  • Репутация: 1
Re: Помощь в SQL запросе
« Ответ #8 : Апрель 09, 2021, 12:17:07 »
    Як ви робите? через створення нового звіту? Якщо так - скиньте шаблон звіту

    Додаю шаблон

    molotokk

    • =)
    • Помогающий
    • *****
    • Сообщений: 402
    • Репутация: 46
    • Пол: Мужской
    • Carpe Diem
    Re: Помощь в SQL запросе
    « Ответ #9 : Апрель 09, 2021, 13:34:01 »
    І зробіть скрін вибору параметрів для звіту
    допомога в налаштуваннях програми

    cola78

    • Младший Пользователь
    • **
    • Сообщений: 32
    • Репутация: 1
    Re: Помощь в SQL запросе
    « Ответ #10 : Апрель 09, 2021, 13:49:33 »
    І зробіть скрін вибору параметрів для звіту
    Скрін додаю.
    Але параметри звіту я ще не використовував в запиті.
    Дата і клієнт прописані напряму.
    SELECT
        GROUP_id, FIO, NAME,NU, DATE_DOK,SUMA_PDV
        FROM
        SHOW_DOCS_GROUPS(3,'01.01.2020','01.02.2020')
        WHERE  FIO='Розничный покупатель'

    admin

    • Админ
    • Помогающий
    • *****
    • Сообщений: 7098
    • Репутация: 1156
    • Пол: Мужской
      • УкрБланк, УкрСклад, УкрЗарплата, Унидок
    Re: Помощь в SQL запросе
    « Ответ #11 : Апрель 09, 2021, 16:10:08 »
    SELECT
      g.group_id,
      g.fio,
      g.name,
      g.nu,
      g.date_dok,
      g.suma_pdv
    FROM
      show_docs_groups(3,'01.01.2020','01.02.2020') g
    WHERE
      g.group_id IN
      (
        SELECT
          dg.group_id
        FROM
          doc_group dg
        GROUP BY
          dg.group_id
        HAVING
          COUNT(dg.group_id) = 1
      ) AND
      g.fio = 'Розничный покупатель'

    cola78

    • Младший Пользователь
    • **
    • Сообщений: 32
    • Репутация: 1
    Re: Помощь в SQL запросе
    « Ответ #12 : Апрель 10, 2021, 09:44:51 »
    SELECT
      g.group_id,
      g.fio,
      g.name,
      g.nu,
      g.date_dok,
      g.suma_pdv
    FROM
      show_docs_groups(3,'01.01.2020','01.02.2020') g
    WHERE
      g.group_id IN
      (
        SELECT
          dg.group_id
        FROM
          doc_group dg
        GROUP BY
          dg.group_id
        HAVING
          COUNT(dg.group_id) = 1
      ) AND
      g.fio = 'Розничный покупатель'

    Дякую. Велике дякую))