Đây là nơi các bạn có thể đặt tất cả các câu hỏi liên quan đến PL/SQL. Không có câu hỏi nào là quá dễ, tất cả đều được hoan nghênh.
Để dễ dàng hơn cho người trả lời, mong các bạn trình bày chi tiết câu hỏi. Xin đừng cho rằng người trả lời biết hệ thống của bạn; không, họ không biết gì cả; bạn cần trình bày chi tiết.
Với những câu hỏi liên quan đến các đoạn mã bạn gởi lên, xin gởi đoạn mã trong thẻ [code] và [/code].
Ví dụ :
[code]
select * from bang1
[/code]
Với những câu hỏi liên quan đến dữ liệu và các đối tượng, xin các bạn gởi :
- cấu trúc các đối tượng liên quan đến câu hỏi
- dữ liệu mẫu của các đối tượng
- kết quả mà bạn muốn
- trình bày logic để lấy ra kết quả.
Ví Dụ:
Tôi có bảng có cấu trúc và dữ liệu mẫu như sau
[code]
declare @temp table
(
Id int identity,
MaKH int,
NgayMua date,
SoTien money
);
insert into @temp values(1,'11/11/2015',20);
insert into @temp values(2,'11/12/2015',30);
insert into @temp values(2,'11/13/2015',10);
insert into @temp values(1,'11/14/2015',10);
insert into @temp values(2,'11/15/2015',60);
[/code]
Tôi muốn có câu lệnh truy xuất để cho ra kết quả như sau
Id MaKH NgayMua SoTien TongSoTien
----------- ----------- ---------- --------------------- ---------------------
1 1 2015-11-11 20.00 20.00
4 1 2015-11-14 10.00 30.00
2 2 2015-11-12 30.00 30.00
3 2 2015-11-13 10.00 40.00
5 2 2015-11-15 60.00 100.00
Logic:
Ứng với mỗi MaKhachHang
TongSoTien = SoTien + tất cả SoTien trước đó, dựa vào thứ tự của NgayMua
Ví dụ:
Dòng đầu tiên (id=1), TongSoTien bằng 20 + 0 = 20 vì không có dòng nào cùng MaKhachHang đứng trước dòng này.
Dòng thứ 2 (id=4), TongSoTien bằng 10 + 20 = 30 vì các dòng đứng trước nó có SoTien là 20.
----
Dòng thứ 3 (id=5), TongSoTien bằng 60 + 10 + 30 = 100 vì các dòng đứng trước nó có SoTien là 10 và 30.
Hỏi Đáp SQL------------ Không có câu hỏi nào là sơ đẳng -------- |
giải giúp em câu này với ạ
Trả lờiXóahãy lấy ra 10 bài viết mới hơn bài viết đang xem
Gia su bang cua ban la A, co truong ID la khoa chinh va truong NGAY quy dinh thoi gian, voi bien @id xac dinh bai viet dang xem. Cau lenh nhu sau
Trả lờiXóa[code]
select ca.* from A a1
cross apply
(
select top 10 * from A a2 where a2.NGAY > a1.NGAY order by a2.NGAY desc
)ca
where a1.ID=@id
[/code]
Mn ơi giúp mình với:
Trả lờiXóaMình có 1 bảng dữ liệu khách hàng gồm mã khách hàng và ngày mua hàng. 1 khách hàng có thể mua nhiều lần. Mình muốn xác định ngày mua hàng gần nhất liền kề ngày mua hàng cụ thể. Điều kiện ngày mua gần nhất ko tính lần mua Hoa Hồng (mã SP: 'HH')
Ví dụ: Khách hàng A mua hàng ngày 02/01/2018. Và ngày mua liền kề gần nhất là 04/06/2017.
Mn ơi giúp mình với:
Trả lờiXóaMình có 1 bảng dữ liệu khách hàng gồm mã khách hàng và ngày mua hàng. 1 khách hàng có thể mua nhiều lần. Mình muốn xác định ngày mua hàng gần nhất liền kề ngày mua hàng cụ thể. Điều kiện ngày mua gần nhất ko tính lần mua Hoa Hồng (mã SP: 'HH')
Ví dụ: Khách hàng A mua hàng ngày 02/01/2018. Và ngày mua liền kề gần nhất là 04/06/2017.
Gia thu ban co bang A (MaKhachHang varchar(20), NgayMuaHang date)
Trả lờiXóaTim ngay lien ke cho khach hang : @mkh='abc' va ngay cu the ban muon : tim @ngayCuThe='1/1/2010'
Cau lenh nhu sau
select top 1 NgayMuaHang from A where MaKhachHang=@mkh and NgayMuaHang<@ngayCuThe order by NgayMuaHang desc
mn giúp mình câu này với: tạo trigger thỏa điề kiện khi xóa một sinh viên sẽ xóa các thông tin liên quan ở các bảng khác
Trả lờiXóa