最新的Sql笔试题及答案,部门表,用户表,客户信息表,订单表
生活随笔
收集整理的這篇文章主要介紹了
最新的Sql笔试题及答案,部门表,用户表,客户信息表,订单表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
部門表(SM_DEPT)
| DEPT_ID | NUMBER | Y | 部門ID |
| PARENT_DEPARTMENT_ID | NUMBER | N | 上級部門 |
| DEPARTMENT_NAME | VARCHAR2(50) | N | 部門名稱 |
用戶部門中間表(SM_USER_DEPT)
| ID | NUMBER | Y | 主鍵 |
| DEPT_ID | NUMBER | N | 部門ID |
| USER_ID | NUMBER | N | 用戶ID |
用戶表(SM_USER)
| USER_ID | NUMBER | Y | 用戶ID |
| USER_NAME | VARCHAR2(50) | N | 用戶名稱 |
| LOGON_NAME | VARCHAR2(50) | N | 登錄名 |
| IS_SALES | VARCHAR2(1) | N | 是否為業務員 |
客戶信息表(CTM_CUSTOMERS)
| CUSTOMER_ID | NUMBER | Y | 客戶ID |
| CUSTOMER_NAME | VARCHAR2(50) | N | 客戶姓名 |
| CITY | VARCHAR2(50) | N | 所屬城市 |
| STATE | VARCHAR2(25) | N | 所屬州 |
| ZIP_CODE | VARCHAR2(10) | N | 郵政編碼 |
| CONTACT_NAME | VARCHAR2(50) | N | 聯系人 |
| ADDRESS | VARCHAR2(50) | N | 聯系地址 |
| TYPE | VARCHAR2(50) | N | 客戶類型 |
| COMMENTS | VARCHAR2(100) | N | 備注 |
訂單頭表(PIM_HEADERS)
| PI_ID | NUMBER | Y | 訂單ID |
| PI_NO | VARCHAR2(50) | N | 訂單號 |
| CREATION_DATE | DATE | N | 創建日期 |
| CUSTOMER_ID | NUMBER | N | 關聯客戶表的客戶ID |
| OPERATOR_ID | NUMBER | N | 關聯用戶表的用戶ID |
| CURRENCY_CODE | VARCHAR2(50) | N | 訂單幣種 |
| EXCHAHGE_RATE | NUMBER | N | 匯率 |
訂單行表(PIM_LINES)
| PI_ID | NUMBER | N | 訂單ID |
| PI_LINES_ID | VARCHAR2(50) | Y | 訂單行ID |
| PRODUCT_CODE | NUMBER | N | 產品編碼 |
| QUANTITY | NUMBER | N | 產品數量 |
| PRICE | NUMBER | N | 產品單價 |
問題
1.編寫SQL語句,查詢PIM_HEADERS表,符合日期在2011-03-01和2011-03-25之間的PI訂單,顯示訂單號,創建日志,訂單客戶名稱,訂單業務員名稱
select t1.PI_NO,t1.CREATION_DATE,t2.CUSTOM_NAME,t3.USER_NAME from (select * from PIM_HEADERSwhere CREATION_DATE between to_date('2011-03-01','yyyy-mm-dd')andto_date('2011-03-25','yyyy-mm-dd')) t1left join CTM_CUSTOMERS t2on t1.CUSTOMER_ID = t2.CUSTOMER_IDleft join SM_USER t3on t1.OPERATOR_ID = t3.USER_ID2.編寫SQL語句,查詢所有部門名稱及其給部門的業務員的個數,部門在2011-01-01到2011-03-01之間創建的PI訂單數
select t1._DEPARTMENT_NAME,count(t2.USER_NAME),count(t3.PI_NO) from SM_DEPT t1left join SM_USER_DEPT t2on t1.dept_id = t2.dept_idleft join (select * from PIM_HEADERSwhere CREATION_DATE between to_date('2011-01-01','yyyy-mm-dd')andto_date('2011-03-01','yyyy-mm-dd')) t3on t2.user_id = t3.OPERATOR_ID group by t1.DEPT_ID3.編寫SQL語句,查詢所有客戶及其相關PI訂單號,PI創建日期,PI訂單相關業務員姓名及其業務所屬部門名稱
selectt1.*,t2.PI_NO,t2.CREATION_DATE,t3.USER_NAME,t5.DEPARTMENT_NAME from SM_CUSTOMERS t1left join PIM_HEADERS t2on t1.CUSTOER_ID = t2.CUSTOMER_IDleft join SM_USER t3on t2.OPERATOR_ID = t3.user_idleft join SM_USER_DEPT t4on t3.USER_ID = t4.USER_IDleft join SM_DEPT t5on t4.DEPT_ID = t5.DEPT_ID4.編寫SQL語句,更新沒有下過PI訂單的客戶名稱的備注為“從未發生業務往來”
update CTM_CUSTOMERS t1 set COMMENTS = '從未反生業務往來'where not exists (select PI_NO from PIM_HEADERS t2where t2.CUSTOMER_ID = t1.CUSTOMER_ID) ;commit;5.編寫SQL語句,查詢所有客戶名稱及其所屬城市,并按照城市名稱降序,用戶名稱升序排序
select CUSTOM_NAME,CITYfrom CTM_CUSTOMERSorder by city desc,CUSTOMER_NAME asc6.編寫SQL語句,查詢出所有的客戶的PI訂單的下單金額,顯示客戶名稱,訂單幣種,訂單總數量及訂單總額
selectt2.CUSTOMER_NAME,t1.CURRENCY_CODE,t3.TOTAL,t4.TOTAL_MONEYfrom PIM_HEADERS t1left join CTM_CUSTOMERS t2on t1.CUSTOMER_ID = t2.CUSTOMER_IDleft join (select PI_ID,sum(QUANTITY) TOTAL,sum(QUANTITY*PRICE) TOTAL_MONEYfrom PIM_LINES group by PI_ID) t3on t1.PI_ID = t3.PI_ID;7.編寫函數,函數需傳入部門ID,返回結果部門對應所有業務員姓名連接起來,中間用逗號隔開
create or replace function getUserByDeptId( dept_id number) return varchar2isres varchar2(200);cursor mycursor(did number) isselect t2.CUSTOMER_NAMEfrom (select * from SM_USER_DEPTwhere dept_id = did) t1left join SM_USER t2on t1.USER_ID = t2.USER_ID ;beginfor c_row in mycursor(dept_id) loopres := res ||','|| c_rowend loop;return res;end;總結
以上是生活随笔為你收集整理的最新的Sql笔试题及答案,部门表,用户表,客户信息表,订单表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础知识小记:
- 下一篇: 爱普生SCARA机器人参考文档列表