Size: a a a

2020 September 29

F

Frankie4Fingers in sql_ninja
О, привет
источник

V

Vladislav ORB in sql_ninja
Никто не может помочь с запросом?
Есть таблица а, связана через Джойны с таблицей б.
Одной записи а соответствуют несколько записей б.
Мне необходимо вытащить только те А у которых Несколько Б и ещё эти Б должны соответствовать условиям из таблицы А и тех которые приджойнены
источник

V

Vladislav ORB in sql_ninja
То есть сложность заключается в том что хотело бы использовать что то
Where (select count(a.id)
From a
Join....
Join b
Where b.value = a. Value
And ...
> 1)
источник

V

Vladislav ORB in sql_ninja
Но нельзя держать в where агрегатные
источник

V

Vladislav ORB in sql_ninja
А как это совместить с having ума не приложу
источник

ДК

Дмитрий Калинов... in sql_ninja
Vladislav ORB
Никто не может помочь с запросом?
Есть таблица а, связана через Джойны с таблицей б.
Одной записи а соответствуют несколько записей б.
Мне необходимо вытащить только те А у которых Несколько Б и ещё эти Б должны соответствовать условиям из таблицы А и тех которые приджойнены
как понять "Б соответствуют условиям из таблицы А"?
источник

ДК

Дмитрий Калинов... in sql_ninja
давай прям текстом задание
источник

ДК

Дмитрий Калинов... in sql_ninja
будет понятнее, как мне кажется
источник

V

Vladislav ORB in sql_ninja
Есть сущности А. Через несколько таблиц связаны с сущностями Б. У одной А может быть несколько Б.
Необходимо отобрать А, которым соответствуют не менее 2 Б с соответствующими условиями.
Не бейте сильно, новичок в sql )
Прекрасно понимаю что написал лажу однако не знаю как сделать
источник

V

Vladislav ORB in sql_ninja
SELECT
   am.id AS id,
   a.id AS appealId,
   'link ' || am.id AS appealMovementLink,
   am.document_kind AS documentKind,
   am.number AS number,
   to_char(am.registration_date, 'DD.MM.YYYY') AS registrationDate,
   q.annotation AS summary,
   an.number || ' от ' || to_char(an.registration_date, 'DD.MM.YYYY') AS answerNumber
FROM appeal_movement am
        INNER JOIN appeal a ON a.id = am.appeal_id
        LEFT JOIN question_movement qm ON am.id = qm.appeal_movement_id
   AND qm.archived_date is null
        LEFT JOIN question q ON qm.question_id = q.id
        LEFT JOIN question_answer qa ON q.id = qa.question_id
        LEFT JOIN answer an ON qa.answer_id = an.id
WHERE am.department_id = 134
 AND am.document_state_id NOT IN (1, 6, 8, 9)
 AND ((SELECT
          count(distinct am.id) AS count
      FROM resolution r
               INNER JOIN appeal a ON a.id = am.appeal_id
               LEFT JOIN question_movement qm ON am.id = qm.appeal_movement_id
          AND qm.archived_date is null
               LEFT JOIN question q ON qm.question_id = q.id
               LEFT JOIN question_answer qa ON q.id = qa.question_id
               LEFT JOIN answer an ON qa.answer_id = an.id
               INNER JOIN resolution_addressee ra ON ra.resolution_id = r.id
      WHERE am.department_id = 134
        AND am.document_state_id NOT IN (1, 6, 7, 9)
        AND r.question_id = q.id
        AND (r.type_id in (1, 2, 5, 6, 12, 14) or r.system_direction_type_id = 1)
        AND r.is_draft IS NOT TRUE
        AND r.author_employee_id in (1100)) > 1)
ORDER BY am.registration_date DESC
LIMIT 10
   OFFSET 0
источник

V

Vladislav ORB in sql_ninja
То есть не может быть в where агрегатной функции. Но как тут сделать по другому понятия нет, в sql очень узкий кругозор
источник

2_

2flower _ in sql_ninja
select .. from a where exists (select 1 from b where a.key=b.key having count(*)>1)
???
и ни единого разрыыыыва джойна
источник

ДК

Дмитрий Калинов... in sql_ninja
2flower _
select .. from a where exists (select 1 from b where a.key=b.key having count(*)>1)
???
и ни единого разрыыыыва джойна
не менее двух - тогда уж


...
HAVING COUNT(*) > 1
источник

ДК

Дмитрий Калинов... in sql_ninja
ну или >= 2
источник

ДК

Дмитрий Калинов... in sql_ninja
а так да
источник

2_

2flower _ in sql_ninja
Дмитрий Калинов
не менее двух - тогда уж


...
HAVING COUNT(*) > 1
да, вы правы, уже сплю просто, пишу на автомате
источник

ДК

Дмитрий Калинов... in sql_ninja
2flower _
да, вы правы, уже сплю просто, пишу на автомате
понимаю, бывает 🙂
источник

V

Vladislav ORB in sql_ninja
Спасибо за подсказку с экзист
источник

V

Vladislav ORB in sql_ninja
Переработал и словил клин. Быстро сделал
источник
2020 September 30

ML

Mihail Li in sql_ninja
то жеж можно )
источник