【发布时间】:2022-01-20 07:00:21
【问题描述】:
亲爱的,你们好。 请帮我查询数据库。
架构
架构 (MySQL v8.0)
create table TEST_TABLE (
DT date,
OBJECT_ID NUMERIC,
PARAM_VALUE NUMERIC
);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-01',1, 21);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-02',1, 34);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-03',1, 78);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-04',1, 11);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-05',1, 26);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-06',1, 11);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-07',1, 12);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-08',1, 74);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-01',2, 18);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-02',2, 96);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-03',2, 33);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-04',2, 77);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-05',2, 55);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-06',2, 28);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-07',2, 54);
insert TEST_TABLE (DT, OBJECT_ID, PARAM_VALUE) values ('2022-01-08',2, 16);
查询 #1
select * from TEST_TABLE;
| DT | OBJECT_ID | PARAM_VALUE |
|---|---|---|
| 2022-01-01 | 1 | 21 |
| 2022-01-02 | 1 | 34 |
| 2022-01-03 | 1 | 78 |
| 2022-01-04 | 1 | 11 |
| 2022-01-05 | 1 | 26 |
| 2022-01-06 | 1 | 11 |
| 2022-01-07 | 1 | 12 |
| 2022-01-08 | 1 | 74 |
| 2022-01-01 | 2 | 18 |
| 2022-01-02 | 2 | 96 |
| 2022-01-03 | 2 | 33 |
| 2022-01-04 | 2 | 77 |
| 2022-01-05 | 2 | 55 |
| 2022-01-06 | 2 | 28 |
| 2022-01-07 | 2 | 54 |
| 2022-01-08 | 2 | 16 |
查询 #2
set @TARGET_DATE = '2022-01-08';
select
OBJECT_ID,
group_concat(if(DT = DATE_ADD(@TARGET_DATE, interval -1 day) , PARAM_VALUE, null)) as `dt-1`,
group_concat(if(DT = DATE_ADD(@TARGET_DATE, interval -2 day) , PARAM_VALUE, null)) as `dt-2`
from TEST_TABLE group by OBJECT_ID;
| OBJECT_ID | dt-1 | dt-2 |
|---|---|---|
| 1 | 12 | 11 |
| 2 | 54 | 28 |
我想收到列名中包含日期的结果
| OBJECT_ID | 2022-01-07 | 2022-01-06 |
|---|---|---|
| 1 | 12 | 11 |
| 2 | 54 | 28 |
对不起我的英语
【问题讨论】:
-
我想收到列名中包含日期的结果研究Prepared Statements.