DB2 비교 상용 및 실용 sql 문장 총결산

9367 단어 DB2sql 문장
1. 직원의 번호, 이름, 부서와 생년월일을 찾습니다. 생년월일이 비어 있으면 날짜가 상세하지 않고 부서별로 정렬하여 출력합니다. 날짜 형식은yyy-mm-dd입니다

select emp_no,emp_name,dept,isnull(convert(char(10),birthday,120),' ') birthday
from employee
order by dept
2, 같은 부서에 있는 직원의 이름, 성별, 부서와 직명을 찾아라

select emp_no,emp_name,dept,title
from employee
where emp_name<>' ' and dept in
(select dept from employee
where emp_name=' ')
3. 부서별로 종합하여 각 부서의 총 임금을 통계한다

select dept,sum(salary)
from employee
group by dept
4. 상품 명칭이 14인치 디스플레이 상품의 판매 상황을 찾아 이 상품의 번호, 판매 수량, 단가와 금액을 표시한다

select a.prod_id,qty,unit_price,unit_price*qty totprice
from sale_item a,product b
where a.prod_id=b.prod_id and prod_name='14 '
5. 판매 명세표에서 제품 번호에 따라 종합하여 각 제품의 판매 수량과 금액을 통계한다

select prod_id,sum(qty) totqty,sum(qty*unit_price) totprice
from sale_item
group by prod_id
6. convert 함수를 사용하여 고객 번호에 따라 각 고객의 1996년 주문 총 금액을 통계한다

select cust_id,sum(tot_amt) totprice
from sales
where convert(char(4),order_date,120)='1996'
group by cust_id
7, 판매 기록이 있는 고객 번호, 명칭과 주문 총액을 찾습니다

select a.cust_id,cust_name,sum(tot_amt) totprice
from customer a,sales b
where a.cust_id=b.cust_id
group by a.cust_id,cust_name
8, 1997년에 판매 기록이 있는 고객 번호, 명칭과 주문 총액을 찾습니다

select a.cust_id,cust_name,sum(tot_amt) totprice
from customer a,sales b
where a.cust_id=b.cust_id and convert(char(4),order_date,120)='1997'
group by a.cust_id,cust_name
9, 한 번의 판매 최대 판매 기록을 찾습니다

select order_no,cust_id,sale_id,tot_amt
from sales
where tot_amt=
(select max(tot_amt)
from sales)
10, 최소 3회 판매된 업무원 명단과 판매 날짜를 찾습니다

select emp_name,order_date
from employee a,sales b
where emp_no=sale_id and a.emp_no in
(select sale_id
from sales
group by sale_id
having count(*)>=3)
order by emp_name
11, 주문 기록이 없는 고객 이름을 존재하는 양사로 찾습니다

select cust_name
from customer a
where not exists
(select *
from sales b
where a.cust_id=b.cust_id)
12, 왼쪽 외부 연결을 사용하여 모든 고객의 고객 번호, 명칭, 주문 날짜, 주문 금액의 주문 날짜를 찾을 때 시간을 표시하지 마십시오. 날짜 형식은yyy-mm-dd가 고객 번호에 따라 정렬하고 같은 고객이 다시 주문 순서에 따라 출력을 정렬합니다

select a.cust_id,cust_name,convert(char(10),order_date,120),tot_amt
from customer a left outer join sales b on a.cust_id=b.cust_id
order by a.cust_id,tot_amt desc
13 16M DRAM의 판매 상황을 찾아 해당하는 판매원의 이름, 성별, 판매 날짜, 판매 수량과 금액을 표시해야 한다. 그 중에서 성별은 남자, 여자가 표시한다

select emp_name , = case a.sex when 'm' then ' '
when 'f' then ' '
else ' '
end,
= isnull(convert(char(10),c.order_date,120),' '),
qty , qty*unit_price as
from employee a, sales b, sale_item c,product d
where d.prod_name='16M DRAM' and d.prod_id=c.prod_id and
a.emp_no=b.sale_id and b.order_no=c.order_no
14 판매원의 번호, 이름, 성별, 제품 이름, 수량, 단가, 금액과 판매 날짜를 표시해야 합니다

select emp_no ,emp_name , = case a.sex when 'm' then ' '
when 'f' then ' '
else ' '
end,
prod_name , = isnull(convert(char(10),c.order_date,120),' '),
qty , qty*unit_price as
from employee a left outer join sales b on a.emp_no=b.sale_id , sale_item c,product d
where d.prod_id=c.prod_id and b.order_no=c.order_no
15, 판매 금액이 가장 큰 고객 명칭과 총 대금을 찾습니다

select cust_name,d.cust_sum
from customer a,
(select cust_id,cust_sum
from (select cust_id, sum(tot_amt) as cust_sum
from sales
group by cust_id ) b
where b.cust_sum =
( select max(cust_sum)
from (select cust_id, sum(tot_amt) as cust_sum
from sales
group by cust_id ) c )
) d
where a.cust_id=d.cust_id
16, 판매 총액이 1000위안보다 적은 판매원 번호, 이름과 매출액을 찾습니다

select emp_no,emp_name,d.sale_sum
from employee a,
(select sale_id,sale_sum
from (select sale_id, sum(tot_amt) as sale_sum
from sales
group by sale_id ) b
where b.sale_sum <1000
) d
where a.emp_no=d.sale_id
17 최소한 3가지 상품을 판매한 고객 번호, 고객 이름, 상품 번호, 상품 이름, 수량과 금액을 찾습니다

select a.cust_id,cust_name,b.prod_id,prod_name,d.qty,d.qty*d.unit_price
from customer a, product b, sales c, sale_item d
where a.cust_id=c.cust_id and d.prod_id=b.prod_id and
c.order_no=d.order_no and a.cust_id in (
select cust_id
from (select cust_id,count(distinct prod_id) prodid
from (select cust_id,prod_id
from sales e,sale_item f
where e.order_no=f.order_no) g
group by cust_id
having count(distinct prod_id)>=3) h )
18, 적어도 세계 기술 개발 회사의 판매와 같은 고객 번호, 명칭과 상품 번호, 상품 명칭, 수량과 금액을 찾습니다

select a.cust_id,cust_name,d.prod_id,prod_name,qty,qty*unit_price
from customer a, product b, sales c, sale_item d
where a.cust_id=c.cust_id and d.prod_id=b.prod_id and
c.order_no=d.order_no and not exists
(select f.*
from customer x ,sales e, sale_item f
where cust_name=' ' and x.cust_id=e.cust_id and
e.order_no=f.order_no and not exists
( select g.*
from sale_item g, sales h
where g.prod_id = f.prod_id and g.order_no=h.order_no and
h.cust_id=a.cust_id)
)
19, 검색표에 있는 모든 유씨 직공의 번호, 부서, 월급

select emp_no,emp_name,dept,salary
from employee
where emp_name like ' %'
20, 모든 주문서 금액이 2000보다 높은 모든 고객 번호를 찾습니다

select cust_id
from sales
where tot_amt>2000
21, 통계표에서 직원의 월급이 4000-6000 사이인 사람

select count(*)as
from employee
where salary between 4000 and 6000
22 조회표에 있는 같은 부서의 직원의 평균 임금은'주소'만 조회하면'상하이시'직원이다

select avg(salary) avg_sal,dept
from employee
where addr like ' %'
group by dept
23, 표의 주소를'상해시'로 하는 직원의 주소를'북경시'로 바꾼다

update employee
set addr like ' '
where addr like ' '
24, 업무부나 회계부의 여직원의 기본 정보를 찾습니다..

select emp_no,emp_name,dept
from employee
where sex='F'and dept in (' ',' ')
25 각 제품의 판매 금액의 총계를 표시하고 판매 금액에 따라 큰 것에서 작은 것으로 수출한다

select prod_id ,sum(qty*unit_price)
from sale_item
group by prod_id
order by sum(qty*unit_price) desc
26,'C0001'과'C0004'의 고객 번호, 고객 이름, 고객 주소를 선택합니다
 
select CUST_ID,cust_name,addr
from customer
where cust_id between 'C0001' AND 'C0004'
27, 계산해 보니 모두 몇 가지 제품을 판매했습니다..
 
select count(distinct prod_id) as ' '
from sale_item
28, 업무부 직원의 월급을 3% 인상..
 
update employee
set salary=salary*1.03
where dept=' '
29.employee표에서 월급이 가장 낮은 직원 정보를 찾습니다..
 
select *
from employee
where salary=
(select min(salary )
from employee )
30.join을 사용하여 고객의 이름을'고객병'이 구매한 화물의'고객명칭','주문금액','주문날짜','전화번호'로 조회한다
 
select a.cust_id,b.tot_amt,b.order_date,a.tel_no
from customer a join sales b
on a.cust_id=b.cust_id and cust_name like ' '
31.sales표에서 주문 금액이'E0013 업무원이 1996/10/15일에 받은 매 주문의 금액'보다 큰 모든 주문서를 찾아냈다
 
select *
from sales
where tot_amt>all
(select tot_amt
from sales
where sale_id='E0013'and order_date='1996/10/15')
order by tot_amt
32,'P0001'제품의 평균 판매 단가를 계산한다
 
select avg(unit_price)
from sale_item
where prod_id='P0001'
33, 회사 여직원이 받은 계약서를 찾아라
 
select sale_id,tot_amt
from sales
where sale_id in
(select sale_id from employee
where sex='F')
34, 같은 날 회사에 입사한 직원을 찾아라
 
select a.emp_no,a.emp_name,a.date_hired
from employee a
join employee b
on (a.emp_no!=b.emp_no and a.date_hired=b.date_hired)
order by a.date_hired
35, 현재 실적이 232000위안을 넘는 직원 번호와 이름을 찾아라..
 
select emp_no,emp_name
from employee
where emp_no in
(select sale_id
from sales
group by sale_id
having sum(tot_amt)<232000)

좋은 웹페이지 즐겨찾기