create table b_his_fee ( demand_depart_name varchar(30) not null comment '需求部门名称', project_type varchar(10) not null, year varchar(4) not null comment '对应年份', real_fee double(10,2) default 0.00 comment '上一年度实际费用', primary key (demand_depart_name,project_type,year) );kingbase建表
时间: 2024-03-09 08:49:07 浏览: 166
您的问题是关于使用 Kingbase 数据库创建表格的语句,以下是您所需的 SQL 语句:
```
CREATE TABLE b_his_fee (
demand_depart_name VARCHAR(30) NOT NULL COMMENT '需求部门名称',
project_type VARCHAR(10) NOT NULL,
year VARCHAR(4) NOT NULL COMMENT '对应年份',
real_fee DOUBLE(10, 2) DEFAULT 0.00 COMMENT '上一年度实际费用',
PRIMARY KEY (demand_depart_name, project_type, year)
);
```
这个语句会创建一个名为 `b_his_fee` 的表格,其中包含 `demand_depart_name`、`project_type`、`year`、`real_fee` 四个字段。其中 `demand_depart_name` 和 `project_type` 字段不能为 NULL,`year` 字段和 `real_fee` 字段有默认值。表格的主键是 `(demand_depart_name, project_type, year)`。
相关问题
INSERT INTO target_table (biz_date, county_name, depart_name, person_uuid, cust_code, cust_name, terminal_level_name, data_gather_type_name, sc_type_name, sc_score, sc_type_name_old, sc_score_old, up) SELECT a.biz_date, a.county_name, a.depart_name, a.person_uuid, a.cust_code, a.cust_name, a.terminal_level_name, a.data_gather_type_name, a.sc_type_name, a.sc_score, b.sc_type_name AS sc_type_name_old, b.sc_score AS sc_score_old, a.sc_score - b.sc_score AS up FROM ads_yh_yx_sctwo a LEFT JOIN ads_yh_yx_sctwo b ON a.cust_code = b.cust_code AND b.biz_date = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 DAY), '%Y%m%d') AND b.person_uuid = '00000000001389361632876_5304_371' WHERE a.biz_date = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY '%Y%m%d') AND a.person_uuid = '00000000001389361632876_5304_371' AND a.sc_type_name != b.sc_type_name AND (a.sc_score - b.sc_score) <> 0 查找此sql的问题
根据你提供的SQL查询语句,我检测到以下问题:
1. 在第20行中,缺少一个闭括号")"来关闭DATE_FORMAT函数。
2. 在第21行中,AND a.sc_type_name != b.sc_type_name的条件可能导致不准确的结果。这将排除掉sc_type_name相同的记录。
3. 在第22行中,AND (a.sc_score - b.sc_score) <> 0条件可能导致不准确的结果。这将排除掉sc_score差值为0的记录。
修正后的SQL查询语句如下:
```
INSERT INTO target_table (biz_date, county_name, depart_name, person_uuid, cust_code, cust_name, terminal_level_name, data_gather_type_name, sc_type_name, sc_score, sc_type_name_old, sc_score_old, up)
SELECT
a.biz_date,
a.county_name,
a.depart_name,
a.person_uuid,
a.cust_code,
a.cust_name,
a.terminal_level_name,
a.data_gather_type_name,
a.sc_type_name,
a.sc_score,
b.sc_type_name AS sc_type_name_old,
b.sc_score AS sc_score_old,
a.sc_score - b.sc_score AS up
FROM ads_yh_yx_sctwo a
LEFT JOIN ads_yh_yx_sctwo b ON a.cust_code = b.cust_code
AND b.biz_date = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 DAY), '%Y%m%d')
AND b.person_uuid = '00000000001389361632876_5304_371'
WHERE a.biz_date = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%Y%m%d')
AND a.person_uuid = '00000000001389361632876_5304_371'
AND a.sc_type_name <> b.sc_type_name
AND (a.sc_score - b.sc_score) <> 0;
```
这将修复问题并执行正确的查询。请注意,我做出的更改可能仅限于语法修复,可能还有其他逻辑问题需要进一步检查。
select a.org_code,a.belong_org,depart_name from (select org_code as belong_org,org_code, depart_name as depart_name from sys_depart where sys_depart.org_code like concat(#{orgCode},"%") and dep_type in(1,5)) a
这是一个 SQL 查询语句,查询了 sys_depart 表中符合条件的列,并将其别名为 a,最终选择了 a 表中的 org_code、belong_org 和 depart_name 列。其中,#{orgCode} 是一个占位符,需要在查询执行时被具体的值替换。该查询语句的功能是查询指定 orgCode 及其子机构中 dep_type 为 1 或 5 的部门信息,包括部门编码、所属机构编码和部门名称。
阅读全文