powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос, чтобы попадали записи нужного месяца и года
4 сообщений из 4, страница 1 из 1
Запрос, чтобы попадали записи нужного месяца и года
    #40009863
roma1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.


Есть таблица, в которой есть записи с определённым годом и месяцем. Как сделать, чтобы можно было выбрать
записи с определённым месяцем и годом.
Такой запрос не правильный (2 записи должны попасть)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select  t3.*,
date_trunc('month', ('01.04.2021')::date) - interval '13 month', 
date_trunc('month', ('01.04.2021')::date) - interval '1 month',
extract(year from (date_trunc('month', ('01.04.2021')::date) - interval '13 month')::date) ,
 extract(month from (date_trunc('month', ('01.04.2021')::date) - interval '13 month')::date) 
from 

(select 2020 t1,4 t2
 union all
 select 2021 t1,3 t2
)
t3

where 
(
extract(year from (date_trunc('month', ('01.04.2021')::date) - interval '13 month')::date )<=t1
and extract(month from (date_trunc('month', ('01.04.2021')::date) - interval '13 month')::date )<=t2
)

and
(
extract(year from (date_trunc('month', ('01.04.2021')::date) - interval '1 month')::date )>=t1
and extract(month from (date_trunc('month', ('01.04.2021')::date) - interval '1 month')::date )>=t2
)
...
Рейтинг: 0 / 0
Запрос, чтобы попадали записи нужного месяца и года
    #40009875
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roma1975,

Перепроектировать к чертям. Такой таблицей невозможно пользоваться.

По какой логике обе строки t3 должны примениться к каждой строке сравниваемой записи? По какой логике должны выбираться значения для сравнения больше и меньше?
...
Рейтинг: 0 / 0
Запрос, чтобы попадали записи нужного месяца и года
    #40010019
roma1975
Как сделать, чтобы можно было выбрать записи с определённым месяцем и годом.

во WHERE подставить месяц и год.
(каков вопрос таков ответ)
где таблицы то сами? где примеры данных? где что должно получиться?
а запрос - дичь
...
Рейтинг: 0 / 0
Запрос, чтобы попадали записи нужного месяца и года
    #40010147
roma1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вроде сам сделал. Запрос с примерными данными, должен возвращать данные год и месяц,
которых соответствует году и месяцу даты переданной дате -13 месяцев (нижняя дата) и
году и месяцу даты переданной дате -1 месяц (верхняя дата)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
select  t3.*,
date_trunc('month', ('01.04.2021')::date) - interval '13 month', 
date_trunc('month', ('01.04.2021')::date) - interval '1 month',
extract(year from (date_trunc('month', ('01.04.2021')::date) - interval '13 month')::date) ,
 extract(month from (date_trunc('month', ('01.04.2021')::date) - interval '13 month')::date) 
from 

(select 2020 t1,4 t2
 union all
 select 2021 t1,3 t2
)
t3

where 

(
'01.'||extract(month from (date_trunc('month', ('01.04.2023')::date) - interval '13 month')::date)
||'.'||extract(year from (date_trunc('month', ('01.04.2023')::date) - interval '13 month')::date)
)::date
<= ('02'||'.'||t2||'.'||t1)::date
and 
(
'01.'||extract(month from (date_trunc('month', ('01.04.2023')::date) )::date)
||'.'||extract(year from (date_trunc('month', ('01.04.2023')::date) )::date)
)::date
> ('02'||'.'||t2||'.'||t1)::date
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос, чтобы попадали записи нужного месяца и года
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]