172 похожих чатов

Всем привет Подскажите, пожалуйста, куда посмотреть: есть запрос к постгресу, который возвращает

набор интервалов — время корпоративов, исключая время в отпуске ( получаю подзапросом ).
Я пока не могу понять, как исключить интервалы из основного запроса, которые входят в результаты подзапроса.
Выглядит вот так:
SELECT corporate_party.start_at - corporate_party.end_at as corp
FROM "user_profile"
INNER JOIN "user_profile_corporate_party"
ON ("user_profile"."id" = "user_profile_corporate_party"."user_profile_id")
INNER JOIN "corporate_party" ON ("user_profile_corporate_party"."corporate_party_id" = "corporate_party"."id")
WHERE (("user_profile.id" = $1) AND ("corporate_party.start_at" >= $2) AND ("corporate_party.end_at" <= $3) AND
("corp" NOT IN ((SELECT end_at - start_at
FROM "vacation"
WHERE (("end_at" <= $4) AND ("start_at" >= $5) AND ("user_profile_id" = $6))))))
основная сложность для меня в самом конце — вот тут
("corp" NOT IN ((SELECT end_at - start_at
FROM "vacation"
WHERE (("end_at" <= $4) AND ("start_at" >= $5) AND ("user_profile_id" = $6))))))
corp — это интервал, и подзапрос — тоже возвращает набор интервалов
Ну, или возможно я вообще не правильно подумал о решении этой задачи и есть какой - то другой способ ?)

1 ответов

12 просмотров

А я, например, не могу понять по описанию, в чём суть задачи (да и тип данных всех этих start_at неизвестен). И да, запрос написан странно (трудно читать) — слишком много quoting, как будто это какой-то генератор / ORM, но наличие отдельных неквалифицированных полей, вроде ("corporate_partystart_at" >= $2) как бы намекает, что нет...

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта