帮我完善下面的sql查询: SELECT sd.dept_name, SUM(audit.score) FROM sys_dept AS sd, sys_user AS su, audit WHERE sd.dept_id = su.dept_id AND su.user_name = audit.create_by AND audit.`status`='1' AND audit.create_by IN ( SELECT su.user_name FROM sys_user AS su WHERE su.user_id IN ( SELECT sur.user_id FROM sys_user_role AS sur WHERE sur.role_id = ( SELECT role_id FROM sys_role AS sr WHERE sr.role_key = #{roleKey}))) GROUP BY sd.dept_name

时间: 2024-02-10 07:34:27 浏览: 28
这个 SQL 查询的语句已经相当完整,不过缺少一个参数 `roleKey`,需要你在使用时传入具体的值。这个查询语句的作用是查询指定角色下的所有用户所在的部门名称以及其对应的考核总分数,其中: - `sys_dept` 表代表部门信息,`dept_name` 代表部门名称,`dept_id` 代表部门 ID; - `sys_user` 表代表用户信息,`user_name` 代表用户名,`dept_id` 代表用户所在的部门 ID; - `audit` 表代表考核信息,`create_by` 代表考核记录的创建者(即用户的用户名),`score` 代表考核分数,`status` 代表考核记录的状态; - `sys_user_role` 表代表用户角色关系,`user_id` 和 `role_id` 分别代表用户 ID 和角色 ID; - `sys_role` 表代表角色信息,`role_key` 代表角色关键字,与传入的参数 `roleKey` 相对应。 如果你想查询某个角色下的所有用户在考核中的得分情况,可以将 `roleKey` 替换为相应的关键字,例如 `'manager'`。
相关问题

def transform(self, df: DataFrame) -> DataFrame: """ add audit col to dataframe :param df: :return: """ param_dict = { "job_id": self.config.job_id, "batch_id": self.config.batch_id, "data_source_name": self.config.data_source_name, "table_full_name": self.config.table_full_name, "audit_created_usr": "airflow_user", "audit_updated_usr": "airflow_user", "audit_src_sys_name": "SAP_X79_EDWS" } if "audit_created_usr" in df.columns: df = DataSink_with_audit(self.spark).update_audit_columns(df, param_dict) else: df = DataSink_with_audit(self.spark).add_audit_columns(df, param_dict) return df

这段代码实现了一个 DataFrame 数据的转换方法,主要是在 DataFrame 中添加了一列用于审计的信息。 具体来说,代码首先通过 `self.config` 中的信息生成了一个参数字典 `param_dict`,用于存储审计相关的信息,比如 job_id、batch_id、data_source_name 等。然后,代码判断 DataFrame 中是否已经存在了审计相关的列,如果存在,则调用 `DataSink_with_audit` 类中的 `update_audit_columns` 方法,将参数字典 `param_dict` 中的信息更新到 DataFrame 中的审计列中。如果不存在,则调用 `DataSink_with_audit` 类中的 `add_audit_columns` 方法,为 DataFrame 添加一个审计列,并将参数字典 `param_dict` 中的信息填充到该列中。 最后,代码返回经过转换后的 DataFrame。

优化sql SELECT DISTINCT rtr.rd_report_product_info_id AS rdReportProductInfoId , mar.machine_audit_result AS machineAuditResult,mar.machine_audit_result_desc AS machineAuditResultDesc FROM crm_rd_report_task_result rtr LEFT JOIN crm_rd_machine_audit_record mar ON rtr.dept_code = mar.dept_code AND rtr.belong_year = mar.belong_year AND rtr.belong_month = mar.belong_month WHERE mar.dept_code =#{deptCode} AND mar.belong_year = #{belongYear} AND mar.belong_month = #{belongMonth}

这是一条SQL查询语句,目的是从两个表中获取数据并进行优化。查询结果包括三个字段:rdReportProductInfoId、machineAuditResult和machineAuditResultDesc。其中,rdReportProductInfoId来自crm_rd_report_product_info表,而machineAuditResult和machineAuditResultDesc来自crm_rd_machine_audit_record表。这两个表通过LEFT JOIN连接起来,连接条件是dept_code、belong_year和belong_month。查询条件是mar.dept_code等于某个特定值。这条语句的目的是优化查询效率,提高查询速度。

相关推荐

SELECT bs.report_no, bs.sample_id, bs.test_id, bs.service_type, bs.sample_name, bs.total_fee, bs.receivable_fee, bs.sample_no, bs.ranges, bs.grade, bs.sample_remark AS remark, bs.factory, bs.item_name, bs.apply_dept, bs.specification, bs.factory_number, bs.calibrat_point, bs.mandatory_flag, bs.inspection_type, bs.report_org_name, bs.plan_complete_date, bs.standard_instrument_name, bs.bleeding_site_name, bs.arrive_date, DATEDIFF( bs.plan_complete_date, NOW()) AS surplus_days, bs.order_no, bs.order_type, bs.customer_name, bs.order_id, bs.business_type, bs.group_id, bs.group_name, bs.item_id, bs.is_merge, bs.pass_time, bs.audit_time, bs.report_id, bs.compile_time, bs.generate_time, bs.pass_user_name, bs.audit_user_name, bs.compile_user_name, bs.report_state, bs.is_just_certificate, bs.label_price, bs.labor_cost, bs.product_type, bs.batch_number, bs.original_number, bs.type_no, bs.template_id, bs.template_version, bs.standard_instrument_id, bs.standard_instrument_name, bs.report_query_code, bs.test_user_id, bs.test_user_name, bs.test_time, bs.review_user_id, bs.review_user_name, bs.review_time, bs.or_number, bs.test_result, bs.test_result_text, bs.test_date, bs.test_address, bs.result_value, bs.unit, bs.test_dept_id, bs.test_dept_name, bs.sample_mass, bs.form, bs.color, bs.clarity, bs.amplification_detection, bs.precious_metal, bs.remarks, bs.photo, bs.identifying_code, bs.diamond_quality, bs.hand_ring, bs.craft, bs.instrument_photo, bs.customer_item_basis, bs.quality_photo, bs.check_point, bs.check_code, bs.mass_unit, bs.manufacturer_name, bs.manufacturer_addr, bs.result_sample_describe AS sampleDescribe, bs.test_rule AS metalRuleIdsStr, bsa.attach_id FROM view_sample_info bs JOIN bus_sample_report bsr ON bs.report_id = bsr.id JOIN bus_sample sa ON bsr.sample_id = sa.id JOIN bus_sample_attr bsa ON sa.id = bsa.id 需要按照bs.report_no 的整数来从小到大进行排序

$("#h_box").on("click","#sendNextUsersM",function(){ var rows = me.datatable.rows(".selected").data().toArray(); if(rows.length ==1){ var is_valid = rows[0].IS_VALID; if(is_valid!="Y"){ wj_fun.wj_confirm_init("校验未通过,不可以发送!"); return; } //var item_key = rows[0].ITEM_KEY; //zjptWorkFlow(item_key,query); var tempSql = " select WF_VIEW_URL,WF_MODIFY_URL from XSR_XZ_EX_XLS_CONFIG where xls_code = '"+rows[0].XLS_CODE+"' "; var sqlResult = getForm.getSqlForms({"sql":tempSql}); var dpSql = " select d.dp_name from Xsr_Xz_Ba_Ou_Dp_All d where d.dp_id = "+rows[0].DP_ID; var dpResult = getForm.getSqlForms({"sql":dpSql}); var param = { "H_DESC": rows[0].INV_H_NAME, "VENDOR_SITE": "", "EMP_TYPE": "", "XLS_CODE": rows[0].XLS_CODE, "WF_VIEW": zx_session_vars["rootPath"]+"/"+sqlResult.WF_VIEW_URL, "WF_MODIFY_URL": zx_session_vars["rootPath"]+"/"+sqlResult.WF_MODIFY_URL, "WF_VIEW_URL": zx_session_vars["rootPath"]+"/"+sqlResult.WF_VIEW_URL, "WF_JBR_ID": "", "OU_ID": rows[0].OU_ID, "OU_NAME": rows[0].OU_NAME, "DP_NAME": dpResult.DP_NAME, "INV_H_NAME":rows[0].INV_H_NAME, "INV_H_CODE": rows[0].INV_H_CODE, "INV_H_VAL": rows[0].INV_H_VAL, "PAY_H_VAL": rows[0].INV_H_VAL, "WITH_TAX_VAL": rows[0].INV_H_VAL, "LOGINNAME": rows[0].BXR, "JBRXM":rows[0].EMPNAME, "DP_ID": rows[0].DP_ID, "EMP_NAME": rows[0].EMPNAME, "DP_CODE": "", "p_table_name": "xsr_xz_ex_inv_h", "p_primary_column": "INV_H_ID", "e_business_id": rows[0].INV_H_ID }; var callback = function () { //执行完成之后的回调函数,刷新表格 query(); wj_fun.tip_block({ "title": "流程提交成功!" }); }; wf_submit(rows[0].ITEM_TYPE, rows[0].ITEM_KEY, rows[0].AUDIT_STATUS, param,callback, true) }else{ wj_fun.wj_confirm_init("请选择一条数据!"); return ; } });

if self.config.load_type == "INC": # adhoc hist job do not need to join landing merge table try: landing_merge_df = self.spark.read.format(self.config.destination_file_type). \ load(self.config.destination_data_path) # dataframe for updated records df = df.drop("audit_batch_id", "audit_job_id", "audit_src_sys_name", "audit_created_usr", "audit_updated_usr", "audit_created_tmstmp", "audit_updated_tmstmp") # dataframe for newly inserted records new_insert_df = df.join(landing_merge_df, primary_keys_list, "left_anti") self.logger.info(f"new_insert_df count: {new_insert_df.count()}") new_insert_df = DataSink_with_audit(self.spark).add_audit_columns(new_insert_df, param_dict) update_df = df.alias('l').join(landing_merge_df.alias('lm'), on=primary_keys_list, how="inner") update_df = update_df.select("l.*", "lm.audit_batch_id", "lm.audit_job_id", "lm.audit_src_sys_name", "lm.audit_created_usr", "lm.audit_updated_usr", "lm.audit_created_tmstmp", "lm.audit_updated_tmstmp") self.logger.info(f"update_df count : {update_df.count()}") update_df = DataSink_with_audit(self.spark).update_audit_columns(update_df, param_dict) # dataframe for unchanged records unchanged_df = landing_merge_df.join(df, on=primary_keys_list, how="left_anti") self.logger.info(f"unchanged_records_df count : {unchanged_df.count()}") final_df = new_insert_df.union(update_df).union(unchanged_df) print("final_df count : ", final_df.count()) except AnalysisException as e: if e.desc.startswith('Path does not exist'): self.logger.info('landing merge table not exists. will skip join landing merge') final_df = DataSink_with_audit(self.spark).add_audit_columns(df, param_dict) else: self.logger.error(f'unknown error: {e.desc}') raise e else: final_df = DataSink_with_audit(self.spark).add_audit_columns(df, param_dict) return final_df

最新推荐

recommend-type

起点小说解锁.js

起点小说解锁.js
recommend-type

299-煤炭大数据智能分析解决方案.pptx

299-煤炭大数据智能分析解决方案.pptx
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章

![:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章](https://img-blog.csdnimg.cn/img_convert/69b98e1a619b1bb3c59cf98f4e397cd2.png) # 1. 目标检测算法概述 目标检测算法是一种计算机视觉技术,用于识别和定位图像或视频中的对象。它在各种应用中至关重要,例如自动驾驶、视频监控和医疗诊断。 目标检测算法通常分为两类:两阶段算法和单阶段算法。两阶段算法,如 R-CNN 和 Fast R-CNN,首先生成候选区域,然后对每个区域进行分类和边界框回归。单阶段算法,如 YOLO 和 SSD,一次性执行检
recommend-type

info-center source defatult

这是一个 Cisco IOS 命令,用于配置 Info Center 默认源。Info Center 是 Cisco 设备的日志记录和报告工具,可以用于收集和查看设备的事件、警报和错误信息。该命令用于配置 Info Center 默认源,即设备的默认日志记录和报告服务器。在命令行界面中输入该命令后,可以使用其他命令来配置默认源的 IP 地址、端口号和协议等参数。
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

:YOLO目标检测算法的挑战与机遇:数据质量、计算资源与算法优化,探索未来发展方向

![:YOLO目标检测算法的挑战与机遇:数据质量、计算资源与算法优化,探索未来发展方向](https://img-blog.csdnimg.cn/7e3d12895feb4651b9748135c91e0f1a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rKJ6YaJ77yM5LqO6aOO5Lit,size_20,color_FFFFFF,t_70,g_se,x_16) # 1. YOLO目标检测算法简介 YOLO(You Only Look Once)是一种
recommend-type

tinyplay /storage/BFEF-19EE/wav.wav -D 0 cannot open device 0 for card 0 Unable to open PCM device 0.

这个错误信息可能是由于无法打开PCM设备0导致的。请检查以下几个方面,以便解决这个问题: 1. 你是否有足够的权限来访问该设备? 2. 检查一下PCM设备0是否已经被其他程序占用了。 3. 确认一下你的PCM设备是否已经被正确地配置和设置。 4. 检查一下你的系统是否有足够的内存和资源来支持你的PCM设备。 如果以上几个方面都检查过了,仍然无法解决问题,你可以尝试使用其他的设备号或者采用其他的操作系统来测试这个问题。