Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: làm sao có thể cộng giá trị trong 1 cột của bảng này vào lưu giá trị vào 1 cột của bảng khác mong các pro giúp!!!!!!

  1. #1
    Ngày gia nhập
    05 2017
    Bài viết
    2

    Unhappy làm sao có thể cộng giá trị trong 1 cột của bảng này vào lưu giá trị vào 1 cột của bảng khác mong các pro giúp!!!!!!

    có 2 bảng user và bài hát
    bảng user có cột diemtong và tenuser
    bảng baihat có cột diem và tennguoitao
    giờ em muốn cho cộng giá trị các diem trong baihat có điều kiện là tenuser = tennguoitao rồi lưu giá trị vừa cộng được vào diemtong trong bảng user thì làm sao ạ? em mới học sql giờ bí quá :(

    - - - Nội dung đã được cập nhật ngày 28-05-2017 lúc 09:12 AM - - -

    mọi người có ai biết giúp em với ạ :(
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    03 2017
    Bài viết
    8

    thì cứ dùng update thôi bạn, gắn thêm điều kiện where vào, nếu tennguoitao= tenuser thì sum lại, còn giá trị điểm tổng thì cứ gắn ban đầu default =0 là được

  3. #3
    Ngày gia nhập
    05 2017
    Bài viết
    2

    update thì mình cũng thử dùng nhiều lần rồi. nhưng mà không được :( mình đang xem có cách nào khác không

  4. #4
    Ngày gia nhập
    03 2015
    Bài viết
    16

    Mình viết ý tưởng thôi còn cú pháp thì tùy phải dùng dbms nào mà chỉnh lại cho phù hợp
    Code:
    update table user A inner join (select sum(diem) as tong_diem, ten_nguoi_tao as user group by ten_nguoi_tao) B
            on A.ten_user = B.user set A.diem_tong = B.tong_diem.

  5. #5
    Ngày gia nhập
    02 2016
    Bài viết
    305

    Trích dẫn Nguyên bản được gửi bởi QuangTrung93 Xem bài viết
    Mình viết ý tưởng thôi còn cú pháp thì tùy phải dùng dbms nào mà chỉnh lại cho phù hợp
    Code:
    update table user A inner join (select sum(diem) as tong_diem, ten_nguoi_tao as user group by ten_nguoi_tao) B
            on A.ten_user = B.user set A.diem_tong = B.tong_diem.
    Theo nguyên tắc thì GV nào ra bài tập này không khá lắm về CSDL LH.
    Cộng điểm như vậy thì CSDL bị tội phản chuẩn bậc 2: trường Tổng Điểm không hoàn toàn tùy thuộc vào Khóa Chính (TenUser)

    Vấn đề xảy ra: nếu bên bảng baihat sửa đổi thì dữ liệu bên user sẽ bị sai. Lưu ý là câu truy vấn update trên chỉ update được một số trường hợp nhưng không giải quyết được trường hợp bên baihat delete hết các records của 1 user. Nếu muốn đúng thì phải sửa chỗ JOIN thành LEFT JOIN, và B.tong_diem thành Coalesce(B.TongDiem, 0)

    Cách giải quyết đúng hơn là phải tạo một trigger để khi bên baihat update thì bên user sẽ chọn đúng tenUser để update theo.

    Nếu thiết kế đúng thì user phải thiết kế là view với trường tongdiem là calculated field. Hoặc user chỉ là bảng tạm.

  6. #6
    Ngày gia nhập
    09 2017
    Bài viết
    1

    Mặc định làm sao có thể cộng giá trị trong 1 cột của bảng này vào lưu giá trị vào 1 cột của bảng khác mong các pro giúp!!!!!!

    Trích dẫn Nguyên bản được gửi bởi NguNhuheo Xem bài viết
    Theo nguyên tắc thì GV nào ra bài tập này không khá lắm về CSDL LH.
    Cộng điểm như vậy thì CSDL bị tội phản chuẩn bậc 2: trường Tổng Điểm không hoàn toàn tùy thuộc vào Khóa Chính (TenUser)

    Vấn đề xảy ra: nếu bên bảng baihat sửa đổi thì dữ liệu bên user sẽ bị sai. Lưu ý là câu truy vấn update trên chỉ update được một số trường hợp nhưng không giải quyết được trường hợp bên baihat delete hết các records của 1 user. Nếu muốn đúng thì phải sửa chỗ JOIN thành LEFT JOIN, và B.tong_diem thành Coalesce(B.TongDiem, 0)

    Cách giải quyết đúng hơn là phải tạo một trigger để khi bên baihat update thì bên user sẽ chọn đúng tenUser để update theo.

    Nếu thiết kế đúng thì user phải thiết kế là view với trường tongdiem là calculated field. Hoặc user chỉ là bảng tạm.
    Chi tiết hơn chút được không anh, em cũng đang thắc mắc vấn đề này
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    CÔNG TY TNHH MTV MỘC CHUẨN
    Hotline: 0866 857 237
    Website: http://mocdep.vn

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn