mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
修正测试
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@169 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
+10
-4
@@ -26,6 +26,7 @@ import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLAllColumnExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLObjectCreateExpr;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource.JoinType;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelect;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeInterval;
|
||||
@@ -556,8 +557,14 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
|
||||
public boolean visit(OracleSelectJoin x) {
|
||||
x.getLeft().accept(this);
|
||||
print(" ");
|
||||
print(OracleSelectJoin.JoinType.toString(x.getJoinType()));
|
||||
|
||||
if (x.getJoinType() == JoinType.COMMA) {
|
||||
print(",");
|
||||
} else {
|
||||
print(" ");
|
||||
print(JoinType.toString(x.getJoinType()));
|
||||
}
|
||||
|
||||
print(" ");
|
||||
x.getRight().accept(this);
|
||||
|
||||
@@ -1621,7 +1628,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
println();
|
||||
x.getSearchClause().accept(this);
|
||||
}
|
||||
|
||||
|
||||
if (x.getCycleClause() != null) {
|
||||
println();
|
||||
x.getCycleClause().accept(this);
|
||||
@@ -1684,6 +1691,5 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
public void endVisit(CycleClause x) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -65,7 +65,16 @@ public class SQLParser {
|
||||
return alias;
|
||||
}
|
||||
|
||||
throw new ParserException("Error", 0, 0);
|
||||
switch (lexer.token()) {
|
||||
case KEY:
|
||||
alias = lexer.token().name();
|
||||
lexer.nextToken();
|
||||
return alias;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
throw new ParserException("Error : " + lexer.token());
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.LITERAL_ALIAS) {
|
||||
@@ -78,6 +87,16 @@ public class SQLParser {
|
||||
alias = "'" + lexer.stringVal() + "'";
|
||||
lexer.nextToken();
|
||||
}
|
||||
|
||||
switch (lexer.token()) {
|
||||
case KEY:
|
||||
alias = lexer.token().name();
|
||||
lexer.nextToken();
|
||||
return alias;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return alias;
|
||||
}
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource.JoinType;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelect;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectItem;
|
||||
@@ -76,7 +77,6 @@ import com.alibaba.druid.sql.ast.statement.SQLUnionQuery;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUniqueConstraint;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUpdateSetItem;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectJoin;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.SQLSelectSubqueryQuery;
|
||||
|
||||
public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
|
||||
@@ -144,7 +144,7 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
|
||||
if (i % 5 == 0) {
|
||||
println();
|
||||
}
|
||||
|
||||
|
||||
print(", ");
|
||||
}
|
||||
|
||||
@@ -748,8 +748,12 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
|
||||
@Override
|
||||
public boolean visit(SQLJoinTableSource x) {
|
||||
x.getLeft().accept(this);
|
||||
print(" ");
|
||||
print(OracleSelectJoin.JoinType.toString(x.getJoinType()));
|
||||
if (x.getJoinType() == JoinType.COMMA) {
|
||||
print(",");
|
||||
} else {
|
||||
print(" ");
|
||||
print(JoinType.toString(x.getJoinType()));
|
||||
}
|
||||
print(" ");
|
||||
x.getRight().accept(this);
|
||||
|
||||
|
||||
@@ -16,41 +16,42 @@ import com.alibaba.druid.util.JdbcUtils;
|
||||
public class OracleSQLParserResourceTest extends TestCase {
|
||||
|
||||
public void test_0() throws Exception {
|
||||
// exec_test("bvt/parser/oracle-0.txt");
|
||||
// exec_test("bvt/parser/oracle-1.txt");
|
||||
// exec_test("bvt/parser/oracle-2.txt");
|
||||
// exec_test("bvt/parser/oracle-3.txt");
|
||||
// exec_test("bvt/parser/oracle-4.txt");
|
||||
// exec_test("bvt/parser/oracle-5.txt");
|
||||
// exec_test("bvt/parser/oracle-6.txt"); // PARTITION
|
||||
// exec_test("bvt/parser/oracle-7.txt");
|
||||
// exec_test("bvt/parser/oracle-8.txt");
|
||||
// exec_test("bvt/parser/oracle-9.txt");
|
||||
// exec_test("bvt/parser/oracle-10.txt");
|
||||
// exec_test("bvt/parser/oracle-11.txt");
|
||||
// exec_test("bvt/parser/oracle-12.txt");
|
||||
// exec_test("bvt/parser/oracle-13.txt");
|
||||
// exec_test("bvt/parser/oracle-14.txt");
|
||||
// exec_test("bvt/parser/oracle-15.txt");
|
||||
// exec_test("bvt/parser/oracle-16.txt");
|
||||
// exec_test("bvt/parser/oracle-17.txt");
|
||||
// exec_test("bvt/parser/oracle-18.txt");
|
||||
// exec_test("bvt/parser/oracle-19.txt");
|
||||
// exec_test("bvt/parser/oracle-20.txt");
|
||||
// exec_test("bvt/parser/oracle-21.txt");
|
||||
// exec_test("bvt/parser/oracle-22.txt");
|
||||
// exec_test("bvt/parser/oracle-23.txt");
|
||||
// exec_test("bvt/parser/oracle-24.txt");
|
||||
// exec_test("bvt/parser/oracle-25.txt");
|
||||
// exec_test("bvt/parser/oracle-26.txt");
|
||||
// exec_test("bvt/parser/oracle-27.txt");
|
||||
// exec_test("bvt/parser/oracle-28.txt");
|
||||
// exec_test("bvt/parser/oracle-29.txt");
|
||||
// exec_test("bvt/parser/oracle-30.txt");
|
||||
// exec_test("bvt/parser/oracle-31.txt");
|
||||
exec_test("bvt/parser/oracle-0.txt");
|
||||
exec_test("bvt/parser/oracle-1.txt");
|
||||
exec_test("bvt/parser/oracle-2.txt");
|
||||
exec_test("bvt/parser/oracle-3.txt");
|
||||
exec_test("bvt/parser/oracle-4.txt");
|
||||
exec_test("bvt/parser/oracle-5.txt");
|
||||
exec_test("bvt/parser/oracle-6.txt"); // PARTITION
|
||||
exec_test("bvt/parser/oracle-7.txt");
|
||||
exec_test("bvt/parser/oracle-8.txt");
|
||||
exec_test("bvt/parser/oracle-9.txt");
|
||||
exec_test("bvt/parser/oracle-10.txt");
|
||||
exec_test("bvt/parser/oracle-11.txt");
|
||||
exec_test("bvt/parser/oracle-12.txt");
|
||||
exec_test("bvt/parser/oracle-13.txt");
|
||||
exec_test("bvt/parser/oracle-14.txt");
|
||||
exec_test("bvt/parser/oracle-15.txt");
|
||||
exec_test("bvt/parser/oracle-16.txt");
|
||||
exec_test("bvt/parser/oracle-17.txt");
|
||||
exec_test("bvt/parser/oracle-18.txt");
|
||||
exec_test("bvt/parser/oracle-19.txt");
|
||||
exec_test("bvt/parser/oracle-20.txt");
|
||||
exec_test("bvt/parser/oracle-21.txt");
|
||||
exec_test("bvt/parser/oracle-22.txt");
|
||||
exec_test("bvt/parser/oracle-23.txt");
|
||||
exec_test("bvt/parser/oracle-24.txt");
|
||||
exec_test("bvt/parser/oracle-25.txt");
|
||||
exec_test("bvt/parser/oracle-26.txt");
|
||||
exec_test("bvt/parser/oracle-27.txt");
|
||||
exec_test("bvt/parser/oracle-28.txt");
|
||||
exec_test("bvt/parser/oracle-29.txt");
|
||||
exec_test("bvt/parser/oracle-30.txt");
|
||||
exec_test("bvt/parser/oracle-31.txt");
|
||||
exec_test("bvt/parser/oracle-32.txt");
|
||||
exec_test("bvt/parser/oracle-33.txt");
|
||||
exec_test("bvt/parser/oracle-34.txt");
|
||||
exec_test("bvt/parser/oracle-35.txt");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9,6 +9,6 @@ ORDER BY e.word_alias,a.createtime DESC
|
||||
|
||||
---------------------------
|
||||
SELECT Count(*)
|
||||
FROM q_matchrelation a , q_offerdetail b , q_keyword e , Q_ADCREATIVE f
|
||||
FROM q_matchrelation a, q_offerdetail b, q_keyword e, Q_ADCREATIVE f
|
||||
WHERE a.offerid = b.offerid AND a.keywordid = e.keywordid AND a.offerid = f.offerid AND a.issuspect = '1'
|
||||
ORDER BY e.word_alias, a.createtime DESC
|
||||
@@ -41,5 +41,5 @@ SELECT count(*)
|
||||
FROM (SELECT a.activity_offer_id AS adResourceId, a.title AS adResourceName, a.b2boffer_url AS adResourceURL, a.custid, b.memberid
|
||||
, c.position_name AS positionName, c.charge_setting AS feeRegulation, a.priority_weight AS priorityWeight, a.audit_state AS adResourceState, 0 AS adResourceType
|
||||
, a.gmt_create, a.refuse_remark
|
||||
FROM q_activity_offer_enroll a , q_custinfo b , q_activity_position c
|
||||
FROM q_activity_offer_enroll a, q_custinfo b, q_activity_position c
|
||||
WHERE a.custid = b.custid AND a.activity_position_id = c.activity_position_id AND c.activity_id = ?)
|
||||
|
||||
@@ -11,7 +11,7 @@ WHERE a.examine_id = b.examine_id
|
||||
|
||||
---------------------------
|
||||
SELECT a.examine_id AS examineId, a.examine_name AS examineName, a.level_limit AS levelLimit
|
||||
FROM c_examinepaper a , (SELECT examine_id
|
||||
FROM c_examinepaper a, (SELECT examine_id
|
||||
FROM c_examinepaper
|
||||
WHERE level_limit = ? AND status = 1
|
||||
MINUS
|
||||
|
||||
@@ -8,7 +8,7 @@ SELECT DECODE(GROUPING(department_name), 1, 'All Departments',
|
||||
ORDER BY department_name, job_id;
|
||||
---------------------------
|
||||
SELECT DECODE(GROUPING(department_name), 1, 'All Departments', department_name) AS department_name, DECODE(GROUPING(job_id), 1, 'All Jobs', job_id) AS job_id, COUNT(*) AS "Total Empl", AVG(salary) * 12 AS "Average Sal"
|
||||
FROM employees e , departments d
|
||||
FROM employees e, departments d
|
||||
WHERE d.department_id = e.department_id
|
||||
GROUP BY CUBE(department_name, job_id)
|
||||
ORDER BY department_name, job_id;
|
||||
|
||||
@@ -14,7 +14,7 @@ SELECT channel_desc, calendar_month_desc, co.country_id,
|
||||
(calendar_month_desc, co.country_id) );
|
||||
---------------------------
|
||||
SELECT channel_desc, calendar_month_desc, co.country_id, TO_CHAR(sum(amount_sold), '9,999,999,999') AS SALES$
|
||||
FROM sales , customers , times , channels , countries co
|
||||
FROM sales, customers, times, channels, countries co
|
||||
WHERE sales.time_id = times.time_id AND sales.cust_id = customers.cust_id AND sales.channel_id = channels.channel_id AND customers.country_id = co.country_id AND (channels.channel_desc IN ('Direct Sales', 'Internet') AND (times.calendar_month_desc IN ('2000-09', '2000-10') AND co.country_iso_code IN ('UK', 'US')))
|
||||
GROUP BY GROUPING SETS ((channel_desc, calendar_month_desc, co.country_id), (channel_desc, co.country_id), (calendar_month_desc, co.country_id));
|
||||
|
||||
|
||||
@@ -25,11 +25,11 @@ FROM (SELECT A.*, rownum AS cnt
|
||||
, C.CONTNAME, C.CONTPHONECITYCODE, C.CONTPHONE, C.CONTMOBPHONE, C.CONTFAXCITYCODE
|
||||
, C.CONTFAX, C.CONTEMAIL, C.CUSTAREA AS AREANAME, C.CUSTADDR, C.ORGINDUSTRY AS ORGINDUSTRYNAME
|
||||
, E.DESCRIPTION AS CUSTSTATNAME, F.DESCRIPTION AS B2BCUSTTYPENAME, NULL AS CUSTSERVICERNAME, G.DESCRIPTION AS B2BVALIDFLAGNAME, A.VALIDFLAG
|
||||
FROM Q_CUSTOMERS A , Q_CUSTINFO C , (SELECT *
|
||||
FROM Q_CUSTOMERS A, Q_CUSTINFO C, (SELECT *
|
||||
FROM Q_DOMAINCDSTRING
|
||||
WHERE DOMAINCD = 'CUSTOMERS_CUSTSTAT') E , (SELECT *
|
||||
WHERE DOMAINCD = 'CUSTOMERS_CUSTSTAT') E, (SELECT *
|
||||
FROM Q_DOMAINCDSTRING
|
||||
WHERE DOMAINCD = 'CUSTOMERS_B2BCUSTTYPE') F , (SELECT *
|
||||
WHERE DOMAINCD = 'CUSTOMERS_B2BCUSTTYPE') F, (SELECT *
|
||||
FROM Q_DOMAINCDSTRING
|
||||
WHERE DOMAINCD = 'CUSTOMERS_B2BVALIDFLAG') G
|
||||
WHERE A.CUSTID = C.CUSTID AND A.CUSTSTAT = CODE(+) AND A.B2BCUSTTYPE = CODE(+) AND A.b2bValidFlag = CODE(+) AND A.MEMBERID = ?
|
||||
|
||||
@@ -30,7 +30,7 @@ FROM (SELECT custid, memberid, createtime, planid, auditstate
|
||||
FROM (SELECT p.custid, p.memberid, p.createtime, p.planid, p.auditstate
|
||||
, p.createid, p.custappdate, p.modifytime, p.gmtcreate, p.executeState
|
||||
, c.custname, row_number() OVER ( ORDER BY p.memberid ASC, p.createtime DESC) AS cnt, p.planbatchid
|
||||
FROM q_plan p , q_custinfo c
|
||||
FROM q_plan p, q_custinfo c
|
||||
WHERE p.custid = c.custid AND p.applytype = 0 AND p.createtime BETWEEN to_date(?, 'yyyy-mm-dd') AND to_date(?, 'yyyy-mm-dd hh24:mi:ss') AND (p.auditstate = ? AND p.executestate = 1) AND auditstate != 3 AND p.memberid IN (?)) t
|
||||
WHERE t.cnt < ?) k
|
||||
WHERE k.cnt > ?
|
||||
|
||||
@@ -9,6 +9,6 @@ ORDER BY e.word_alias,a.createtime DESC
|
||||
|
||||
---------------------------
|
||||
SELECT /*+use_hash(a b e) index(e)*/ Count(*)
|
||||
FROM q_matchrelation a , q_offerdetail b , q_keyword e , Q_ADCREATIVE f
|
||||
FROM q_matchrelation a, q_offerdetail b, q_keyword e, Q_ADCREATIVE f
|
||||
WHERE a.offerid = b.offerid AND a.keywordid = e.keywordid AND a.offerid = f.offerid AND a.issuspect = '1'
|
||||
ORDER BY e.word_alias, a.createtime DESC;
|
||||
@@ -11,6 +11,6 @@ ORDER BY RC_CLOT_TRUNK.NAME,RC_CLOT_INFO.id NULLS LAST
|
||||
|
||||
---------------------------
|
||||
SELECT RC_CLOT_INFO_EXT.*, RC_CLOT_TRUNK.NAME AS TRUNK_NAME
|
||||
FROM RC_CLOT_INFO , RC_CLOT_INFO_EXT , RC_CLOT_TRUNK
|
||||
FROM RC_CLOT_INFO, RC_CLOT_INFO_EXT, RC_CLOT_TRUNK
|
||||
WHERE RC_CLOT_INFO.is_deleted = 'n' AND RC_CLOT_INFO.TRUNK_ID = RC_CLOT_TRUNK.ID AND RC_CLOT_INFO.ID = RC_CLOT_INFO_EXT.CLOT_ID AND RC_CLOT_INFO_EXT.GMT_MODIFIED >= ?
|
||||
ORDER BY RC_CLOT_TRUNK.NAME, RC_CLOT_INFO.id NULLS LAST;
|
||||
|
||||
@@ -20,7 +20,7 @@ SELECT *
|
||||
FROM (SELECT rownum AS rnm, z.*
|
||||
FROM (SELECT DISTINCT tt.id AS use_less_id, tt.*
|
||||
FROM (SELECT t.*, rct.parent_id, RCT.NAME AS trunk_name
|
||||
FROM rc_clot_info t , rc_clot_trunk rct
|
||||
FROM rc_clot_info t, rc_clot_trunk rct
|
||||
WHERE t.is_deleted = 'n' AND t.trunk_id = rct.id) tt
|
||||
START WITH trunk_name = 'rc.mf.Caesar'
|
||||
CONNECT BY PRIOR parent_id = trunk_id
|
||||
|
||||
@@ -32,7 +32,7 @@ FROM (SELECT rownum AS rnm, z.*
|
||||
WHERE a.is_deleted = 'n'
|
||||
UNION ALL
|
||||
SELECT lower(b.role_name) || '#' || a.permission_id, 'y'
|
||||
FROM app_role_permission A , app_role_base_role B
|
||||
FROM app_role_permission A, app_role_base_role B
|
||||
WHERE a.is_deleted = 'n' AND b.is_deleted = 'n' AND a.role_name = b.base_role_name)) c
|
||||
ORDER BY c.KEY) z
|
||||
WHERE rownum < ?)
|
||||
|
||||
@@ -11,7 +11,7 @@ from (
|
||||
---------------------------
|
||||
SELECT nodeId, nodeName, taskflowName, taskflowVersion
|
||||
FROM (SELECT /*+use_hash(n f) ordered*/ n.ID AS nodeId, n.name AS nodeName, f.name AS taskflowName, f.version AS taskflowVersion
|
||||
FROM "HT_TASK_FLOW_NODE_WA_2" n , "HT_TASK_FLOW_WA_2" f
|
||||
FROM "HT_TASK_FLOW_NODE_WA_2" n, "HT_TASK_FLOW_WA_2" f
|
||||
WHERE n.owner = ? AND (n.STATUS IN (?) AND n.GMT_MODIFIED < ? AND n.IS_AUTO = 'Y' AND n.task_flow_id = f.id)
|
||||
ORDER BY f.priority DESC NULLS LAST, f.gmt_create ASC)
|
||||
WHERE rownum < ?;
|
||||
@@ -18,6 +18,6 @@ where xh=1
|
||||
SELECT INDUSTRY_ID, sale_type, service_type, RISK_TYPE, to_char(gmt_create, 'yyyy-mm-dd hh24:mi:ss') AS gmt_create
|
||||
FROM (SELECT /*+use_hash(a b c) ordered*/ b.service_type, b.RISK_TYPE, b.sale_type, b.INDUSTRY_ID, b.GMT_CREATE
|
||||
, row_number() OVER (PARTITION BY (b.service_type, b.RISK_TYPE, b.sale_type, b.INDUSTRY_ID) ORDER BY b.GMT_CREATE) AS xh
|
||||
FROM "HT_TASK_FLOW_WA_2" a , "HT_TASK_FLOW_BIZ_WA_2" b , "HT_TASK_FLOW_NODE_WA_2" c
|
||||
FROM "HT_TASK_FLOW_WA_2" a, "HT_TASK_FLOW_BIZ_WA_2" b, "HT_TASK_FLOW_NODE_WA_2" c
|
||||
WHERE a.id = b.task_flow_id AND a.id = c.task_flow_id AND c.status = 'waiting' AND c.IS_AUTO = 'N' AND a.status = 'running' AND c.name IN (?))
|
||||
WHERE xh = 1;
|
||||
|
||||
@@ -52,13 +52,13 @@ FROM (SELECT row_.*, rownum AS rownum_
|
||||
FROM (SELECT sus.ID AS ID, sus.GMT_CREATE AS GMT_CREATE, sus.GMT_MODIFIED AS GMT_MODIFIED, sus.COMPANY_ID AS COMPANY_ID, sus.OBJECT_ID AS OBJECT_ID
|
||||
, sus.OBJECT_TYPE AS OBJECT_TYPE, sus.CONFIRM_TYPE AS CONFIRM_TYPE, sus.OPERATOR AS OPERATOR, sus.FILTER_TYPE AS FILTER_TYPE, sus.MEMBER_ID AS MEMBER_ID
|
||||
, sus.MEMBER_SEQ AS MEMBER_SEQ, sus.RISK_TYPE AS RISK_TYPE, 'Y' AS IS_DRAFT
|
||||
FROM bops_sus_posting sus , ws_product_draft p , member m
|
||||
FROM bops_sus_posting sus, ws_product_draft p, member m
|
||||
WHERE 1 = 1 AND p.company_id = m.company_id AND m.login_id = ? AND (p.sale_type IN (?) AND p.id = sus.object_id)
|
||||
UNION
|
||||
SELECT sus.ID AS ID, sus.GMT_CREATE AS GMT_CREATE, sus.GMT_MODIFIED AS GMT_MODIFIED, sus.COMPANY_ID AS COMPANY_ID, sus.OBJECT_ID AS OBJECT_ID
|
||||
, sus.OBJECT_TYPE AS OBJECT_TYPE, sus.CONFIRM_TYPE AS CONFIRM_TYPE, sus.OPERATOR AS OPERATOR, sus.FILTER_TYPE AS FILTER_TYPE, sus.MEMBER_ID AS MEMBER_ID
|
||||
, sus.MEMBER_SEQ AS MEMBER_SEQ, sus.RISK_TYPE AS RISK_TYPE, 'N' AS IS_DRAFT
|
||||
FROM bops_sus_posting sus , ws_product p , member m
|
||||
FROM bops_sus_posting sus, ws_product p, member m
|
||||
WHERE 1 = 1 AND p.company_id = m.company_id AND m.login_id = ? AND (p.sale_type IN (?) AND p.id = sus.object_id)) results)
|
||||
WHERE rn = 1
|
||||
ORDER BY gmt_modified DESC) row_
|
||||
|
||||
@@ -10,7 +10,7 @@ OR operator = ?
|
||||
|
||||
---------------------------
|
||||
SELECT count(*)
|
||||
FROM CREDIT_CMT_APPLY , CREDIT_CMT_SHEET
|
||||
FROM CREDIT_CMT_APPLY, CREDIT_CMT_SHEET
|
||||
WHERE 1 = 2 OR operator = ? AND CREDIT_CMT_APPLY.GMT_CREATE >= ? AND CREDIT_CMT_APPLY.GMT_CREATE <= ? AND CREDIT_CMT_APPLY.ID = CREDIT_CMT_SHEET.cmt_apply_id AND Type = 'denounce' AND SHEET_STATUS = 'assigned_unresolved';
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ WITH
|
||||
UNION ALL
|
||||
SELECT e.employee_id, e.last_name, e.manager_id, r.reportLevel + 1 AS reportLevel, e.salary
|
||||
, e.job_id
|
||||
FROM org_chart r , employees e
|
||||
FROM org_chart r, employees e
|
||||
WHERE r.eid = e.manager_id
|
||||
)
|
||||
SEARCH DEPTH FIRST BY emp_last SET order1
|
||||
|
||||
@@ -30,7 +30,7 @@ WITH
|
||||
UNION ALL
|
||||
SELECT e.employee_id, e.last_name, e.manager_id, r.reportLevel + 1 AS reportLevel, e.hire_date
|
||||
, e.job_id
|
||||
FROM dup_hiredate r , employees e
|
||||
FROM dup_hiredate r, employees e
|
||||
WHERE r.eid = e.manager_id
|
||||
)
|
||||
SEARCH DEPTH FIRST BY hire_date SET order1
|
||||
|
||||
@@ -6,6 +6,6 @@ SELECT last_name, job_id, departments.department_id, department_name
|
||||
|
||||
---------------------------
|
||||
SELECT last_name, job_id, departments.department_id, department_name
|
||||
FROM employees , departments
|
||||
FROM employees, departments
|
||||
WHERE employees.department_id = departments.department_id
|
||||
ORDER BY last_name, job_id;
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
SELECT last_name, job_id, departments.department_id, department_name
|
||||
FROM employees, departments
|
||||
WHERE employees.department_id = departments.department_id
|
||||
AND job_id = 'SA_MAN'
|
||||
ORDER BY last_name;
|
||||
|
||||
|
||||
---------------------------
|
||||
SELECT last_name, job_id, departments.department_id, department_name
|
||||
FROM employees, departments
|
||||
WHERE employees.department_id = departments.department_id AND job_id = 'SA_MAN'
|
||||
ORDER BY last_name;
|
||||
@@ -12,6 +12,6 @@ ORDER BY a.department_id;
|
||||
SELECT a.department_id AS "Department", a.num_emp / b.total_count AS "%_Employees", a.sal_sum / b.total_sal AS "%_Salary"
|
||||
FROM (SELECT department_id, COUNT(*) AS num_emp, SUM(salary) AS sal_sum
|
||||
FROM employees
|
||||
GROUP BY department_id) a , (SELECT COUNT(*) AS total_count, SUM(salary) AS total_sal
|
||||
GROUP BY department_id) a, (SELECT COUNT(*) AS total_count, SUM(salary) AS total_sal
|
||||
FROM employees) b
|
||||
ORDER BY a.department_id;
|
||||
Reference in New Issue
Block a user