Bài tập lớn 1 của bạn Lộc giải !

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by phamtuananh on 1/12/2009, 09:58

Bạn lộc ko có internet nên nhờ mình share bài tập lên để mọi người cùng trao đổi, có gì mọi người cùng góp ý nha!

Yêu cầu 1:
Sử dụng hệ quản trị CSDL và cú pháp truy vấn của MySQL
1/ SELECT g.TenGV, (c.NBD - curdate()) as ThamNien
FROM ChuyenMon c JOIN GiangVien g ON c.MaGV = g.MaGV
HAVING ThamNien > 3

2/ SELECT l.MaLop, SUM(g.Tp) as SoTietTp, SUM(g.Ng) as SoTietNg, SUM(g.He) as SoTietHe //d hay g?
FROM Lop l JOIN Giang g ON l.MaLop = g.MaLop
HAVING (SoTietTp > 50 OR SoTietTp < 200)
OR( SoTietNg > 50 OR SoTietNg < 200)
OR (SoTietHe > 50 OR SoTietHe < 200)

3/ SELECT gv.TenGV //gv hay g?
FROM GiangVien gv JOIN ChuyenMon c ON gv.MaGV = c.MaGV
JOIN Giang g ON c.MaGV = g.MaGV
WHERE c.MaMon <> g.MaMon

4/ SELECT gv.TenGV
FROM GiangVien gv JOIN Giang g ON gv.MaGV = g.MaGV //g và d
WHERE (g.Tp is not null AND g.Tp <> 0)
AND (g.Ng is not null AND g.Ng <> 0)
AND (g.He is not null AND g.He <> 0)

5/ SELECT gv.TenGV,
((c.hsCD * (SELECT Tp FROM Giang WHERE Tp is not null AND Tp <> 0)
+ c.hsCD * (SELECT Ng FROM Giang WHERE Ng is not null AND Ng <> 0) * 1.5
+ c.hsCD * (SELECT He FROM Giang WHERE He is not null AND He <> 0) * 1.5)
+ 132000) as TongLuong
FROM GiangVien gv JOIN ChucDanh c ON gv.MaCD = c.MaCD
JOIN Giang g ON g.MaGV = gv.MaGV

Yêu cầu 2:
TINHTIEN(LOAITIET,SOTIEN)
HESOLOPDONG(SOLUONG,HSLD)
LOAIDIADIEM(LOAIDIADIEM,HESO)
TINH-LOAIDIADIEM(MATINH,LOAIDIADIEM)
HESONGOAIGIO(LOAIDIADIEM,TRONGGIO,HSTG)
HESOTRONGNAM(MACHUCDANH,TRONGNAM,HETN)
Transon207
avatar
phamtuananh
Cống hiến
Cống hiến

Tổng số bài gửi : 165
Join date : 16/09/2009

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by jasonsmith2812 on 1/12/2009, 10:01

Yêu cầu 2 : -> Em xu của anh Hải Linh.
anh Hải Linh có chỉnh sửa gì, up lên cho anh em trong lớp làm nốt nhé
avatar
jasonsmith2812
Khởi đầu
Khởi đầu

Tổng số bài gửi : 48
Join date : 18/09/2009

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by itlinh on 1/12/2009, 10:56

mình k có chỉnh sửa gì thêm, bạn nào đã làm phần đại số quan hệ 1.1 thì up lên xem với
avatar
itlinh
Góp sức
Góp sức

Tổng số bài gửi : 84
Join date : 27/09/2009
Đến từ : HCM

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by thiet.ngh on 1/12/2009, 11:11

Mình thấy có mấy câu lệnh thiếu GROUP BY hoặc dùng WHERE chu không phải dùng HAVING
avatar
thiet.ngh
Góp sức
Góp sức

Tổng số bài gửi : 92
Join date : 22/09/2009
Đến từ : Bình Định

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by nguyenduc on 1/12/2009, 11:27

phamtuananh đã viết:Bạn lộc ko có internet nên nhờ mình share bài tập lên để mọi người cùng trao đổi, có gì mọi người cùng góp ý nha!

Yêu cầu 1:
Sử dụng hệ quản trị CSDL và cú pháp truy vấn của MySQL
1/ SELECT g.TenGV, (c.NBD - curdate()) as ThamNien
FROM ChuyenMon c JOIN GiangVien g ON c.MaGV = g.MaGV
HAVING ThamNien > 3

2/ SELECT l.MaLop, SUM(g.Tp) as SoTietTp, SUM(g.Ng) as SoTietNg, SUM(g.He) as SoTietHe //d hay g?
FROM Lop l JOIN Giang g ON l.MaLop = g.MaLop
HAVING (SoTietTp > 50 OR SoTietTp < 200)
OR( SoTietNg > 50 OR SoTietNg < 200)
OR (SoTietHe > 50 OR SoTietHe < 200)

3/ SELECT gv.TenGV //gv hay g?
FROM GiangVien gv JOIN ChuyenMon c ON gv.MaGV = c.MaGV
JOIN Giang g ON c.MaGV = g.MaGV
WHERE c.MaMon <> g.MaMon

4/ SELECT gv.TenGV
FROM GiangVien gv JOIN Giang g ON gv.MaGV = g.MaGV //g và d
WHERE (g.Tp is not null AND g.Tp <> 0)
AND (g.Ng is not null AND g.Ng <> 0)
AND (g.He is not null AND g.He <> 0)

5/ SELECT gv.TenGV,
((c.hsCD * (SELECT Tp FROM Giang WHERE Tp is not null AND Tp <> 0)
+ c.hsCD * (SELECT Ng FROM Giang WHERE Ng is not null AND Ng <> 0) * 1.5
+ c.hsCD * (SELECT He FROM Giang WHERE He is not null AND He <> 0) * 1.5)
+ 132000) as TongLuong
FROM GiangVien gv JOIN ChucDanh c ON gv.MaCD = c.MaCD
JOIN Giang g ON g.MaGV = gv.MaGV

Yêu cầu 2:
TINHTIEN(LOAITIET,SOTIEN)
HESOLOPDONG(SOLUONG,HSLD)
LOAIDIADIEM(LOAIDIADIEM,HESO)
TINH-LOAIDIADIEM(MATINH,LOAIDIADIEM)
HESONGOAIGIO(LOAIDIADIEM,TRONGGIO,HSTG)
HESOTRONGNAM(MACHUCDANH,TRONGNAM,HETN)
Transon207

Theo tôi thì câu số 2 và câu số 5 không ổn...

Các thuộc tính TP, NG, HE theo tôi là Option với giá trị là True/False chứ không phải là dữ liệu kiểu Numeric cơ.

Chứ nếu không thì không có số liệu nào cho biết GV đó có giảng ngoại thành hay ngoài giờ và trong năm học...

Xem lại nhé!

nguyenduc
Cống hiến
Cống hiến

Tổng số bài gửi : 312
Join date : 17/09/2009
Age : 38
Đến từ : Bến tre - Hồ chí minh

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by itlinh on 1/12/2009, 11:42

mình có cách làm khác bạn loc như sau, chưa làm đsqh





1)


Select magv,mamon,tengv,tenmon


From chuyenmon as c,giangvien as g,mon as m


Where c.mamon=m.mamon and c.magv=g.magv and 2009-NBD>3


2)


Select malop,count(sotc)


From giang as g,mon as m


Where g.mamon=m.mamon


group by malop


having sum(sotc)>12 or sum(sotc)<=3


3)


Select g.magv,g.mamon


From giang as g


Where g.mamon not in (select mamon from chuyenmon where
magv=g.magv)


4)


Select magv from Giang


Where tp=1 and ng=1


5)


SELECT Sum([sotien]*[sotc]) AS tong


FROM (chucdanh INNER JOIN [giangvien-chucdanh] ON chucdanh.macd
= [giangvien-chucdanh].macd) INNER JOIN giang ON giangvien-chucdanh.magv =
giang.magv;
avatar
itlinh
Góp sức
Góp sức

Tổng số bài gửi : 84
Join date : 27/09/2009
Đến từ : HCM

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by km_ocsen on 1/12/2009, 12:19

Cau 1>



Select MaGV,TenGV

From GiangVien g,Mon m,Chuyen Mom c

Where m.Mamon=c.Mamon

And g.MaGV=c.MaGV

And year(getdate())-year(NBD)>3



Cau 2>



Select Malop,Siso,sum(SoTC*15) as tongtiet

From Mon m,Giang d

Where m.Mamon=d.Mamon

And NBD=year(getdate())

Group by Malop,Siso

Having tongtiet<50

Or tongtiet>200



Cau 3>



Select MaGV,TenGV

From Giang d,Chuyen Mon c,GiangVien g

Where d.MaGV=g.MaGV

And d.Mamon not in(Select Mamon from Chuyen Mon)



Cau 4>



Select MaGV,TenGV,count(MaGV)as Gv

From GiangVien g,Giang d

Where g.MaGV=d.MaGV

And TP=’0’

And TP=’1’

And NBD=year(getdate())

Group by MaGV,TenGV

Having GV>=2

// CÁI NÀY BẠN HẢI LÀM UP LÊN CHO CÁC BẠN COI CHO Ý KIẾN NHÉ
avatar
km_ocsen
Khởi đầu
Khởi đầu

Tổng số bài gửi : 30
Join date : 23/09/2009
Age : 34
Đến từ : Lâm Đồng

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by nanaly on 1/12/2009, 12:27

itlinh đã viết:mình có cách làm khác bạn loc như sau, chưa làm đsqh

Thay bao ko lam DSQH... chi chu trong SQL.. Ne^n ca'c Pa'c cu ye^n ta^m nhe'...!!!
avatar
nanaly
Cống hiến
Cống hiến

Tổng số bài gửi : 376
Join date : 18/09/2009
Age : 34
Đến từ : QNgai

Về Đầu Trang Go down

Re: Bài tập lớn 1 của bạn Lộc giải !

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết