0
어쨌든 열 이름을 기준으로 한 값을 다른 값과 연결할 수 있습니까? 예 : 다음 정규화되지 않은 테이블에서 state_cd_1이 'TX'이면 다른 테이블의 state_amt_1 열의 값을 고려해야하며 state_cd_2가 'TX'일 경우 해당 값을 state_amt_2에 추가해야합니다.열 이름을 기준으로 합계를 계산하십시오.
create table states (state_id int not null auto_increment, state_cd_1 varchar(100), state_cd_2 varchar(100), state_cd_3 varchar(100), state_cd_4 varchar(100), state_cd_5 varchar(100), primary key (state_id));
insert into states values (NULL, 'TX', NULL, NULL, NULL , 'OR');
insert into states values (NULL, 'OR', 'UT', NULL, NULL , NULL);
insert into states values (NULL, 'AZ', 'OR', 'UT', NULL , 'AZ');
create table amount (amt_id int not null auto_increment, state_amt_1 varchar(100), state_amt_2 varchar(100), state_amt_3 varchar(100), state_amt_4 varchar(100), state_amt_5 varchar(100), primary key (amt_id));
insert into amount values (NULL, '100', 900, NULL, NULL , '200');
insert into amount values (NULL, '250', '300', NULL, NULL , NULL);
insert into amount values (NULL, '400', '290', '350', NULL , '450');
(11:34) mysql>select * from states;
+----------+------------+------------+------------+------------+------------+
| state_id | state_cd_1 | state_cd_2 | state_cd_3 | state_cd_4 | state_cd_5 |
+----------+------------+------------+------------+------------+------------+
| 1 | TX | NULL | NULL | NULL | OR |
| 2 | OR | UT | NULL | NULL | NULL |
| 3 | AZ | OR | UT | NULL | AZ |
+----------+------------+------------+------------+------------+------------+
(11:34) mysql>select * from amount;
+--------+-------------+-------------+-------------+-------------+-------------+
| amt_id | state_amt_1 | state_amt_2 | state_amt_3 | state_amt_4 | state_amt_5 |
+--------+-------------+-------------+-------------+-------------+-------------+
| 1 | 100 | 900 | NULL | NULL | 200 |
| 2 | 250 | 300 | NULL | NULL | NULL |
| 3 | 400 | 290 | 350 | NULL | 450 |
+--------+-------------+-------------+-------------+-------------+-------------+
Expected result:
TX 100
OR 740
UT 650
AZ 850
OR
TX OR UT AZ
100 740 650 850
How to calculate:
TX: 100
OR: 200+250+290=740
UT: 300+350=650
AZ: 400+450=850
참고 : 주 이름이 변경 될 수 있습니다.
STATE_ID는 amt_id 일치해야합니다? – Sejanus
테이블을 정상적인 형식으로 정규화하지 않은 이유가 있습니까? @Sean : 아니오. 그의 예를 확인하십시오. –
기준 wtf/min 척도를 기준으로하면 15로 표시됩니다. – Jason