SELECT fID, 业务类型 AS businessType, 名称 AS name, 号码 AS number, 提交日期 AS createDate, 申请人 AS applicant, 申请日期 AS applicationDate FROM (SELECT yw.fID AS fID, lc.业务类型 AS 业务类型, yw.项目名称 AS 名称, yw.项目编号 AS 号码, yw.申请日期 AS 提交日期, yw.申请人 AS 申请人, yw.申请日期 AS 申请日期 FROM v业务报告 yw LEFT JOIN t流转过程 lc ON yw.fID = lc.业务对象ID AND lc.业务类型 = '业务报告' LEFT JOIN tS步骤 bz ON lc.步骤ID = bz.fID WHERE yw.申请人ID = 1 AND bz.状态 = 1 AND bz.是否开始节点 = 1 AND lc.提交日期 IS NOT NULL UNION SELECT dz.fID AS fID, lc.业务类型, dz.项目名称, dz.项目编号, dz.申请日期, dz.申请人, dz.申请日期 FROM v电子报告 dz LEFT JOIN t流转过程 lc ON dz.fID = lc.业务对象ID AND lc.业务类型 = '电子报告' LEFT JOIN tS步骤 bz ON lc.步骤ID = bz.fID WHERE dz.申请人ID = 1 AND bz.状态 = 1 AND bz.是否开始节点 = 1 AND lc.提交日期 IS NOT NULL UNION SELECT kp.fID, lc.业务类型, kp.开票抬头, kp.发票号, kp.申请日期, kp.申请人, kp.申请日期 FROM v开票收款 kp LEFT JOIN t流转过程 lc ON kp.fID = lc.业务对象ID AND lc.业务类型 = '业务报告' LEFT JOIN tS步骤 bz ON lc.步骤ID = bz.fID WHERE kp.申请人ID = 1 AND bz.状态 = 1 AND bz.是否开始节点 = 1 AND lc.提交日期 IS NOT NULL) AS wdqq ORDER BY 提交日期 DESC
时间: 2023-02-11 15:03:30 浏览: 163
这是一个 SQL 查询语句,它的主要作用是从三个不同表 (v业务报告、v电子报告、v开票收款) 中查询并返回数据。
具体地,它使用了 UNION 语句将三个表的查询结果合并成一个结果集。这些表均通过LEFT JOIN关联了另外两个表(t流转过程、tS步骤)。
其中查询条件为 申请人ID = 1 且 步骤状态 为1 且 是否为开始节点 为1 且 提交日期不为空
最后根据 提交日期 倒序排序.
要返回的字段为 fID、业务类型、名称、号码、提交日期、申请人、申请日期
相关问题
简化这段mysql代码:SELECT fID, 业务类型 AS businessType, 名称 AS name, 号码 AS number, 提交日期 AS createDate, 申请人 AS applicant, 申请日期 AS applicationDate FROM (SELECT yw.fID AS fID, lc.业务类型 AS 业务类型, yw.项目名称 AS 名称, yw.项目编号 AS 号码, yw.申请日期 AS 提交日期, yw.申请人 AS 申请人, yw.申请日期 AS 申请日期 FROM v业务报告 yw LEFT JOIN t流转过程 lc ON yw.fID = lc.业务对象ID AND lc.业务类型 = '业务报告' LEFT JOIN tS步骤 bz ON lc.步骤ID = bz.fID WHERE yw.申请人ID = 1 AND bz.状态 = 1 AND bz.是否开始节点 = 1 AND lc.提交日期 IS NOT NULL UNION SELECT dz.fID AS fID, lc.业务类型, dz.项目名称, dz.项目编号, dz.申请日期, dz.申请人, dz.申请日期 FROM v电子报告 dz LEFT JOIN t流转过程 lc ON dz.fID = lc.业务对象ID AND lc.业务类型 = '电子报告' LEFT JOIN tS步骤 bz ON lc.步骤ID = bz.fID WHERE dz.申请人ID = 1 AND bz.状态 = 1 AND bz.是否开始节点 = 1 AND lc.提交日期 IS NOT NULL UNION SELECT kp.fID, lc.业务类型, kp.开票抬头, kp.发票号, kp.申请日期, kp.申请人, kp.申请日期 FROM v开票收款 kp LEFT JOIN t流转过程 lc ON kp.fID = lc.业务对象ID AND lc.业务类型 = '业务报告' LEFT JOIN tS步骤 bz ON lc.步骤ID = bz.fID WHERE kp.申请人ID = 1 AND bz.状态 = 1 AND bz.是否开始节点 = 1 AND lc.提交日期 IS NOT NULL) AS wdqq ORDER BY 提交日期 DESC
这段代码通过在三张表(v业务报告,v电子报告,v开票收款)上进行多表联查,并在结果集上对特定字段进行别名赋值,从而查询出指定条件下,提交人ID为1,业务状态为1,步骤为开始节点,提交日期非空的所有记录。最后将结果按照提交日期降序排序。
businesstype
businesstype是一个变量,根据引用\[1\]中的代码,它是一个Object类型的变量。在代码中,首先判断businesstype是否为空,然后再判断它的类型。如果businesstype是String类型,则将其放入condtions中的"businessType"键;如果businesstype是数组类型,则将其放入condtions中的"businessTypes"键,并将"businessType"键的值设为null。所以,businesstype的具体取值和类型需要根据代码的上下文来确定。
#### 引用[.reference_title]
- *1* [Java 判断Object 对象 是否为数组类型, 可以选择用 getClass().isArray() 方法](https://blog.csdn.net/qq_39564789/article/details/113526538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【jdk 8 Stream】简易笔记](https://blog.csdn.net/qq_43718048/article/details/126646435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [java操作日志实现](https://blog.csdn.net/weixin_43833817/article/details/97242890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文