posted by 네코냥이 2013. 7. 19. 15:54
출처: http://blog.naver.com/khs84/40137409350


조인(join)

1. tblStaff, tblProject에서서울시에사는직원을제외한나머지직원들의이름과월급, 프로젝트명을출력

    select s.name, s.salary, p.prjName from tblStaff as s

        inner join tblProject as p

            on s.name = p.staff

                where addr <> '서울시';

    

 

 

--2. tblJoinCustomer, tblJoinSales에서종류에상관없이상품을2개이상구매한회원의연락처, 이름, 구매상품명, 수량을출력

select c.tel, c.name, s.item, s.num from tblJoinCustomer as c

inner join tblJoinSales as s

        on c.name = s.customer

         where num >= 2;

 

 

--3. 비디오에서모든비디오제목과수량, 대여가격을출력

select v.name, v.num, g.price from tblVideo as v

left outer join tblGenre as g

            on v.genre = g.name;

 

 

 

--4. 비디오에서2007년2월에대여된구매내역을출력하되대여회원명, 대여비디오명, 대여가격을출력

select * from tblVideo;

select * from tblGenre;

select * from tblRent;

select * from tblMember;

 

--대여회원명,

select m.name, v.name, r.rentDate, g.price from tblRent as r

    inner join tblMember as m

        on r.who = m. pk

    inner join tblVideo as v

     on r.what = v.pk

    inner join tblGenre as g

     on g.name = v.genre

     where r.rentDate between '2007-02-01' and '2007-02-28';

 

 

--5. 비디오에서현재반납을안한회원과그비디오제목을출력

select * from tblVideo;

select * from tblRent;

 

select m.name,v.name, r.retDate from tblVideo as v

    inner join tblRent as r

     on v.pk = r.what

     inner join tblMember as m

     on r.who = m.pk

            where retDate is null;

 

 

 

--6. userTbl, buyTbl에서모든회원의명단을출력하고, 구매내역이있는회원들은구매상품명과구입한총가격을출력

select * from userTbl as u

    inner join buyTbl as b

        on u.userID = b.userid;

 

select * from userTbl;

select * from buyTbl;

 

select u.name, b.price*b.amount as [총가격] from userTbl as u

    left outer join buyTbl as b

        on u.userID = b.userid;

 

--sum을쓰면경고창이뜨니깐....

--Set ANSI_WARNINGS OFF

--select u.name, SUM(b.price * b.amount) from userTbl as u

--    left outer join buyTbl as b

--        on u.userID = b.userid

--            group by u.name;