Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

Đăng Ký

Bạn phải điền đầy đủ thông tin đăng ký!

  

[HQTCSDL] Bài tập thực hành HQT CSDL

    Nhân viên

    avatar

    Bài viết Bài viết : 5

    Danh vọng Danh vọng : 228

    Uy tín Uy tín : 10

    Huy hiệu : iron,goodMod,vip,mod,like

    #1

     on Sat Mar 21, 2015 9:04 pm 

    Tình hình là mình học thực hành HQT-CSDL lớp thầy Nguyễn Thế Xuân Long, và có cho bài tập về nhà (làm từ câu a dến g nhưng ở đây mình làm hết nhé :v )
    Cũng gần thi rồi nên mình rảnh ran làm mấy câu truy vấn up lên cho anh em tham khảo
    Nếu ai chưa có file bài tập thì có thể xem đề ở đây (trang 5 - bài tập về câu truy vấn)

    Trong đó mình bỏ câu i nhé (tại đọc cái câu hỏi chả muốn suy nghĩ @@)
    Đây là bài giải của mình - các bạn chỉ chạy từng câu từng câu để kiểm tra kết quả thôi nhé, chạy cùng lúc cũng được nhưng khó xem @@

    Code:

    --sql
    use QLDDH_XUANHOANG --nhớ đổi lại tên database của bạn nhé
    go --sử dụng CSDL

    --a
    select TenHH,SLGiao,DonGiaGiao
    from ChiTietGiaoHang ctgh,ChiTietDatHang ctdh,HangHoa hh
    where ctdh.MaHH = ctgh.MaHH
     and hh.MaHH = ctdh.MaHH
     and ctdh.MaDat = 'DH01'
    go

    --b
    select MaDat,NgayDat,TenKH
    from DonDatHang inner join KhachHang on KhachHang.MaKH = DonDatHang.MaKH
    where DonDatHang.MaDat not in(select MaDat from PhieuGiaoHang)
    go

    --c
    select TenHH,DonGiaHH
    from HangHoa
    where DonGiaHH in (select max(DonGiaHH) from HangHoa)
    go

    --d
    select KhachHang.MaKH,TenKH,count(MaDat) as SLDHang
    from KhachHang left join DonDatHang on KhachHang.MaKH = DonDatHang.MaKH
    group by KhachHang.MaKH,TenKH
    go

    --e
    select CTGH.MaGiao,NgayGiao,sum(CTGH.SLGiao * CTGH.DonGiaGiao) as N'Tổng Tiền'
    from PhieuGiaoHang PGH inner join ChiTietGiaoHang CTGH on PGH.MaGiao = CTGH.MaGiao
    where year(PGH.NgayGiao) = 2012
    group by CTGH.MaGiao,PGH.NgayGiao
    go

    --f
    select KhachHang.MaKH,TenKH,count(MaDat) as SLDHang
    from KhachHang left join DonDatHang on KhachHang.MaKH = DonDatHang.MaKH
    group by KhachHang.MaKH,TenKH
    having count(MaDat) >= 2
    go

    --g
    select HH.MaHH,TenHH,sum(SLGiao) as N'Tổng SLGiao'
    from ChiTietGiaoHang CTGH inner join HangHoa HH on CTGH.MaHH = HH.MaHH
    group by HH.MaHH,HH.TenHH
    having sum(SLGiao) >= all(select sum(SLGiao) as SLGiao
      from ChiTietGiaoHang CTGH inner join HangHoa HH on CTGH.MaHH = HH.MaHH
      group by HH.MaHH,HH.TenHH
      )
    go

    --h
    update HangHoa
    set SLCon = SLCon + 10
    where MaHH like 'M%'
    go

    --j
    update KhachHang
    set DienThoai = '0905999999'
    where MaKH = 'KH006'
    go

    --k
    alter table ChiTietGiaoHang
    add ThanhTien int
    go --B1 thêm cột ThanhTien có kiểu dữ kiệu int vào bảng CTGH
    update ChiTietGiaoHang
    set ThanhTien = SLGiao*DonGiaGiao
    go --B2 dùng lệnh update để cập nhật dữ liệu cho cột vừa tạo

    Chúc các bạn thành công
    Mọi câu hỏi liên quan đến bài giải các bạn reply tại topic nhé :3 , thân!
    xuanhoang_14i2
    #news #SQL #source-code
    Bạn không có quyền trả lời bài viết