Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Duệt từng dòng của 1 table

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Mặc định Duệt từng dòng của 1 table

    Mình có 2 bảng A và B: Mình muốn sao chép bảng B cho bảng A sao cho nếu khóa chính của B đã có trong A thì A cập nhật lại các dữ liệu khác, ngược lại thì A được chèn mẫu tin mới từ B. Ví du:

    Ở bảng B:
    mahang....tenhang.....soluong....dongia
    1.............mot............10...........1000
    2.............hai............10...........1000
    3.............ba............10...........1000
    4.............bon............10...........1000
    5.............nam............10...........1000

    Ở bảng A:
    mahang....tenhang.....soluong....dongia
    1.............mot............20...........2000
    2.............hai............50...........0

    Sau khi thực hiện lệnh sao chép thì ở bảng A sẽ có kết quả:
    1.............mot............10+20...........1000
    2.............hai............10+50...........1000
    3.............ba............10...........1000
    4.............bon............10...........1000
    5.............nam............10...........1000

    Các bạn giúp mình phần này với!
    * Ghi chủ: Nếu chỉ cập nhật dữ liệu từ B sang A hoặc chèn dữ liệu từ B sang A thì dễ:
    -- Chèn tất cả từ B sang A
    insert into A select * from B
    -- update từ B sang A
    UPDATE A
    SET A.nhaptk = A.nhaptk+B.nhaptk
    FROM A
    JOIN B ON A.mahang =B.mahang
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  2. #2
    Ngày gia nhập
    04 2011
    Bài viết
    5

    bạn nên nghiên cứu về câu lệnh exits (tồn tại) not exists (không tồn tại) là bạn viết ra thui!!

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    93

    Bạn phải cập nhật dữ liệu từ B sang A trước rồi mới chèn những dữ liệu từ B sang A sau
    SQL Code:
    1. -- update từ B sang A
    2. UPDATE A
    3. SET A.nhaptk = A.nhaptk+B.nhaptk
    4. FROM A
    5. JOIN B ON A.mahang =B.mahang
    6. -- Chèn tất cả từ B sang A
    7. INSERT INTO A SELECT * FROM B WHERE NOT EXISTS mahang = A.mahang

  4. #4
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Trích dẫn Nguyên bản được gửi bởi FlyingFox Xem bài viết
    Bạn phải cập nhật dữ liệu từ B sang A trước rồi mới chèn những dữ liệu từ B sang A sau
    SQL Code:
    1. -- update từ B sang A
    2. UPDATE A
    3. SET A.nhaptk = A.nhaptk+B.nhaptk
    4. FROM A
    5. JOIN B ON A.mahang =B.mahang
    6. -- Chèn tất cả từ B sang A
    7. INSERT INTO A SELECT * FROM B WHERE NOT EXISTS mahang = A.mahang
    Cảm ơn bạn nhiều nhiều . Vậy mà mình phải dùng đến datagridview trong c# load du lieu của B xuống, rồi try {insert tung dong cua datagridview vào A} catch {cap nhat du lieu nhu tren}. Hix đúng là mạnh csdl thì lập trình quản lý đơn giản hơn nhiều.
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  5. #5
    Ngày gia nhập
    06 2011
    Bài viết
    93

    Mình dùng y chang cách viết trên cũa bạn mà chĩ là thay đổi là UPDATE trước INSERT và chĩ thêm NOT EXISTS vào thôi.

Các đề tài tương tự

  1. MS SQL Lỗi Truyền được tên table vào procedure lỗi Must declare the table variable?
    Gửi bởi khanh120 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 14-11-2013, 11:55 PM
  2. Xuống dòng trong 1 Cell trong table
    Gửi bởi phamvannam0301 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 11-11-2013, 02:22 PM
  3. Câu truy vấn SQL để gộp từng dòng 2 Table thành 1 Table?
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 5
    Bài viết cuối: 19-09-2013, 04:34 PM
  4. Nhảy cột và dòng trong table asp.net
    Gửi bởi vltd trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 10-07-2013, 06:51 PM
  5. MS SQL Lỗi Lỗi There are no primary or candidate keys in the referenced table khi tạo Foreign key của table
    Gửi bởi supervirus trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 15-06-2011, 05:22 PM

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