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!!
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.
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!!
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:
-- update từ B sang A UPDATE A SET A.nhaptk = A.nhaptk+B.nhaptk FROM A JOIN B ON A.mahang =B.mahang -- Chèn tất cả từ B sang A INSERT INTO A SELECT * FROM B WHERE NOT EXISTS mahang = A.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.
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.