Chủ đề: Tính Trung Bình Trong SQL - Diễn Đàn Tin Học
Có thể bạn quan tâm
Ghi nhớ?
- Tìm kiếm chi tiết
- Diễn đàn
- Cơ sở dữ liệu
- MS SQL Server
- tính trung bình trong SQL
-
Hỗ trợ
- Phiên bản để in
- Giới thiệu cho bạn bè…
- Theo dõi chủ đề này…
-
Rate This Thread
- Current Rating
- Excellent
- Good
- Average
- Bad
- Terrible
- 06-03-2009 14:08 #1 m_tien_85
- View Profile
- View Forum Posts
- View Articles
tính trung bình trong SQL
Chào các bạn, bạn nào giỏi truy vấn SQL thì giúp mính với. Mình có một bảng và dữ liệu như sau: masv mamh hocky lanthi diem a001 th01 1 1 8 a001 th02 1 1 4 a001 th02 1 2 9 a002 th01 1 1 8 a002 th02 1 1 7 a002 th03 1 1 6 a003 th01 1 1 4 a003 th01 1 2 7 a003 th02 1 1 8 a003 th03 1 1 5 Có bạn nào giúp mình một câu truy vấn là tính điểm trung bình cho từng sinh viên trong học kỳ 1, trong đó nếu sinh viên có thi lần 2 thì chỉ tính điểm thi của lần 2 không tính điểm thi lần 1. Bạn nào giỏi thì giúp mình với, thks nhiều.
Quote - 07-03-2009 08:28 #2 xebuyt
- View Profile
- View Forum Posts
- View Articles
Được gửi bởi m_tien_85 Chào các bạn, bạn nào giỏi truy vấn SQL thì giúp mính với. Mình có một bảng và dữ liệu như sau: masv mamh hocky lanthi diem a001 th01 1 1 8 a001 th02 1 1 4 a001 th02 1 2 9 a002 th01 1 1 8 a002 th02 1 1 7 a002 th03 1 1 6 a003 th01 1 1 4 a003 th01 1 2 7 a003 th02 1 1 8 a003 th03 1 1 5 Có bạn nào giúp mình một câu truy vấn là tính điểm trung bình cho từng sinh viên trong học kỳ 1, trong đó nếu sinh viên có thi lần 2 thì chỉ tính điểm thi của lần 2 không tính điểm thi lần 1. Bạn nào giỏi thì giúp mình với, thks nhiều. create table sv ( ma int, mh varchar(10), lanthi int, diem int ) create table bang2 ( may int, mhy varchar(10), lanthiy int, diemy int ) insert into sv values(1,'x',1,4) insert into sv values(1,'x',2,8) insert into sv values(1,'y',1,10) insert into sv values(2,'y',1,5) insert into sv values(2,'y',2,7) insert into sv values(2,'e',1,10) -- create proc TB @masv int as begin declare @c cursor set @C = cursor for select ma,mh,lanthi,diem from sv group by ma,mh,lanthi,diem open @c declare @ma int declare @mh varchar(10) declare @lanthi int declare @diem int fetch next from @c into @ma,@mh,@lanthi,@diem while @@fetch_status = 0 begin if @lanthi = 2 begin insert into bang2 values(@ma,@mh,@lanthi,@diem) end if exists (select*from bang2 where may=@ma and mhy=@mh) begin delete from sv where ma=@ma and mh=@mh declare @a int declare @b int select @a=diemy,@b=lanthiy from bang2 where may=@ma and mhy=@mh insert into sv values(@ma,@mh,@b,@a) end fetch next from @c into @ma,@mh,@lanthi,@diem end delete from bang2 close @c deallocate @c declare @dem int set @dem = 0 declare @tong int set @tong=0 select @tong=sum(diem),@dem=count(diem)from sv where ma=@masv declare @tb float set @tb = 0 set @tb = @tb+(@tong*1.0/@dem) print 'diem tb cua SV '+ cast(@masv as varchar(10)) + ' la : '+cast(@tb as varchar(10)) end proc này tự động xét những thằng có kết quả lần 1 không thỏa đáng ,thuật toán còn " chưa đạt " nhưng nói trung là đạt yêu cầu. vấn đề này chưa giải quyết 1 cách hoàn hảo.nhưng nói trung đây không phải là bài toán khó,tính điểm tb cho từng thành viên thì you tự làm minh` làm mẫu 1 thằng thôi .nếu không giải quyết được thì liên hệ nicname: xebuyt2007 mình help cho run: EXEC TB 1
Quote - 07-03-2009 14:09 #3 dq_ninh
- View Profile
- View Forum Posts
- View Articles
Bạn Xe Buýt ơi, đâu có cần phải rườm rà dữ vậy. Chỉ cần vài giòng SQL như dưới đây: SELECT T2.masv, AVG(T2.diem) FROM ( SELECT T.masv,T.diem FROM TEST T (NOLOCK) INNER JOIN ( SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky ) TMP ON(TMP.masv = T.masv AND TMP.mamh = T.mamh AND TMP.hocky = T.hocky AND TMP.lanthi = T.lanthi) )T2 GROUP BY T2.masv là nó đã cho bạn kết quả rồi: a001 8 a002 7 a003 6 Không những giản dị hơn, mà tốc độ xử lý cũng mau hơn ngàn lần. Bảng kết quả trên dựa theo bảng TEST ở dưới đây: CREATE TABLE TEST ( masv NVARCHAR(10), mamh NVARCHAR(10), hocky int, lanthi int, diem int CONSTRAINT [PK_MAIN] PRIMARY KEY NONCLUSTERED (masv,mamh,hocky,lanthi) ) INSERT TEST VALUES('a001','th01', 1, 1, 8) INSERT TEST VALUES('a001','th02', 1, 1, 4) INSERT TEST VALUES('a001','th02', 1, 2, 9) INSERT TEST VALUES('a002','th01', 1, 1, 8) INSERT TEST VALUES('a002','th02', 1, 1, 7) INSERT TEST VALUES('a002','th03', 1, 1, 6) INSERT TEST VALUES('a003','th01', 1, 1, 4) INSERT TEST VALUES('a003','th01', 1, 2, 7) INSERT TEST VALUES('a003','th02', 1, 1, 8) INSERT TEST VALUES('a003','th03', 1, 1, 5) Tưởng cũng cần nói thêm rằng, các bạn nên tránh dùng CURSOR và FETCH. Chỉ nên dùng cái món này khi không còn có thể dùng phương pháp nào khác. Nhưng trong 20 năm kinh nghiệm của tôi, chưa bao giờ tôi gặp một trường hợp nào dùng CURSOR và FETCH mà tôi không có thể thay thế bằng những phương cách khác, giản dị hơn, với tốc độ xử lý mau hơn. Được gửi bởi xebuyt create table sv ( ma int, mh varchar(10), lanthi int, diem int ) create table bang2 ( may int, mhy varchar(10), lanthiy int, diemy int ) insert into sv values(1,'x',1,4) insert into sv values(1,'x',2,8) insert into sv values(1,'y',1,10) insert into sv values(2,'y',1,5) insert into sv values(2,'y',2,7) insert into sv values(2,'e',1,10) -- create proc TB @masv int as begin declare @c cursor set @C = cursor for select ma,mh,lanthi,diem from sv group by ma,mh,lanthi,diem open @c declare @ma int declare @mh varchar(10) declare @lanthi int declare @diem int fetch next from @c into @ma,@mh,@lanthi,@diem while @@fetch_status = 0 begin if @lanthi = 2 begin insert into bang2 values(@ma,@mh,@lanthi,@diem) end if exists (select*from bang2 where may=@ma and mhy=@mh) begin delete from sv where ma=@ma and mh=@mh declare @a int declare @b int select @a=diemy,@b=lanthiy from bang2 where may=@ma and mhy=@mh insert into sv values(@ma,@mh,@b,@a) end fetch next from @c into @ma,@mh,@lanthi,@diem end delete from bang2 close @c deallocate @c declare @dem int set @dem = 0 declare @tong int set @tong=0 select @tong=sum(diem),@dem=count(diem)from sv where ma=@masv declare @tb float set @tb = 0 set @tb = @tb+(@tong*1.0/@dem) print 'diem tb cua SV '+ cast(@masv as varchar(10)) + ' la : '+cast(@tb as varchar(10)) end proc này tự động xét những thằng có kết quả lần 1 không thỏa đáng ,thuật toán còn " chưa đạt " nhưng nói trung là đạt yêu cầu. vấn đề này chưa giải quyết 1 cách hoàn hảo.nhưng nói trung đây không phải là bài toán khó,tính điểm tb cho từng thành viên thì you tự làm minh` làm mẫu 1 thằng thôi .nếu không giải quyết được thì liên hệ nicname: xebuyt2007 mình help cho run: EXEC TB 1 [=========> Bổ sung bài viết <=========] Sau khi viết tổ (nested) SELECT trên, có một bạn SV trẻ email cho tôi nói rằng, bạn đã thử như tôi viết, kết quả thực thi, nhưng bạn vẫn không hiểu tại sao những lệnh SELECT trên lại có thể tạo ra kết quả, và yêu cầu tôi dẫn giải thêm. Thay vì trả lời thư riêng cho bạn đó, tôi trả lời chung ở đây, để tất cả chúng ta đều có thể tham khảo và trao đổi kinh nghiệm. Thứ nhất, tôi đã tạo ra bảng TEST, và nhập dữ liệu vào đó. Vì khi có thể thấy được những dữ liệu và kết quả của những lệnh từ trên SQL Mgr., thì dễ làm việc hơn. Hơn nữa, khi đã có dữ liệu để thử nghiệm, tôi có thể sáng tác ra những lệnh từ theo phương pháp (TDLT) từ dưới lên trên (Bottom Up). Thứ hai, tôi đọc kỹ lại yêu cầu, và nhận thấy rằng, cái khúc mắc của vấn đề là phải loại bỏ lần thi thứ nhất, nếu dữ liệu điểm của sv có lần thi thứ hai. Do đó, theo phương pháp TDLT, tôi viết lệnh SELECT đầu tiên như sau: SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky Lệnh SELECT trên cho tôi một bảng đã lọc trừ những lần thi đầu tiên của những SV nào có hai lần thi. Bởi vì đã dùng MAX() và phải dùng GROUP, cho nên cột điểm phải loại trừ ra. Sau lệnh SELECT trên, thì tôi có một bảng dữ liệu của những lần thi cần dùng, nhưng chưa có điểm. Thay vì dùng bảng tạm thời (Temporary table), tôi dùng bảng nhớ, vì nó mau hơn và đỡ lôi thôi rắc rối. Kỹ thuật dùng bảng nhớ, là dùng ngoặc đơn '()' bao chung quanh lệnh từ, và cho nó một cái tên sau ngoặc đơn: (SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky )TMP Như đã thấy ở trên, tôi bao ngoặc đơn chung quanh câu SELECT, và TMP là cái tên mà tôi đã đặt cho bảng nhớ. Xin nhớ kỹ một điều là cách viết như trên không thể hoàn tất nếu không có một lệnh từ khác. Nói một cách khác, nếu bạn xử lý một câu SELECT có ngoặc đơn bao quanh như trên thì bị lỗi. Bước kế tiếp là phải lấy điểm của những lần thi điền vào bảng nhớ ở trên. Việc này tương đối dễ dàng, vì bảng chính TEST vẫn còn đó. Chúng ta có thể liên kết bảng TEST với bảng nhớ với liên-từ INNER JOIN như sau: SELECT T.masv,T.diem FROM TEST T (NOLOCK) INNER JOIN ( SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky ) TMP ON(TMP.masv = T.masv AND TMP.mamh = T.mamh AND TMP.hocky = T.hocky AND TMP.lanthi = T.lanthi) Nếu các bạn xử lý lệnh từ trên, các bạn sẽ thấy kết quả là một bảng có mã số của sinh viên và số điểm của các lần thi. Chuyện cuối cùng phải làm là cho thêm một lệnh từ SELECT nữa để tính điểm trung bình của tất cả những lần thì cho mỗi sinh viên. Một lần nữa, tôi lại tận dụng phương pháp dùng bảng nhớ bằng cách dùng ngoặc đơn. (SELECT T.masv,T.diem FROM TEST T (NOLOCK) INNER JOIN ( SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky ) TMP ON(TMP.masv = T.masv AND TMP.mamh = T.mamh AND TMP.hocky = T.hocky AND TMP.lanthi = T.lanthi))T2 Như đã thấy ở trên, tôi dùng ngoặc đơn để tạo bảng nhớ, và cho bảng nhớ này một cái tên là T2. Và như đã nói ở phần trên, chúng ta dùng một lệnh từ khác để hoàn tất câu-từ. Bảng nhớ có tên là T2. Do đó, lệnh từ SELECT cuối cùng dùng để tính điểm trung bình cho các sinh viên căn cứ vào dữ liệu nằm trong bảng nhớ, như sau: SELECT T2.masv, AVG(T2.diem) FROM (SELECT T.masv,T.diem FROM TEST T (NOLOCK) INNER JOIN ( SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky ) TMP ON(TMP.masv = T.masv AND TMP.mamh = T.mamh AND TMP.hocky = T.hocky AND TMP.lanthi = T.lanthi))T2 GROUP BY T2.masv Đến đây thì chúng ta đã hoàn tất xong một tổ SELECT(nested) đáp ứng lại được nan đề của bạn m_tien_85. Như các bạn đã thấy, để giải nan đề, tôi đã dùng 2 bảng nhớ và 3 lệnh-từ SELECT của T-SQL. Thật là dễ, nhưng cũng thật là khó cho những bạn nào còn trong đại học chưa có kinh nghiệm thực tế. Tôi muốn lưu ý các bạn một điều nữa, là khi dùng SELECT, các bạn luôn luôn nên nhớ kèm theo phụ-từ (NOLOCK) cho mỗi bảng. Vì nếu không, bạn sẽ vô tình khóa (lock) record cuối cùng mà SELECT đã đọc. Khi record bị khoá, nếu có một người xử dụng khác dùng lập trình của bạn để cập nhật hóa dữ liệu cho record bị khóa đó, họ sẽ bị rơi vào tình trạng chờ đợi mãi mãi, và bạn sẽ tốn rất nhiều thời gian để tìm ra, là bạn đã không dùng (NOLOCK) như tôi đã lưu ý ở đây. Chúc tất cả!
Được sửa bởi dq_ninh lúc 07:06 ngày 08-03-2009 Reason: Bổ sung bài viết
Quote - 08-03-2009 11:23 #4 Red Devilic
- View Profile
- View Forum Posts
- View Articles
Cách bác dqninh sử dụng là "derived table" Tiện có bài của bác dqninh trao đổi ở đây về derived table. Tôi cũng muốn chia sẻ một chút kinh nghiệm thực tế của mình về vấn đề này Cách sử dụng derived table hoàn toàn có thể hiểu đơn giản như sau Nó cũng tương tự với việc tạo 1 bảng mới Tiếp theo Insert dữ liệu vào bảng đó Ví dụ như ở bài trên ( SELECT T1.masv,T1.mamh,T1.hocky,lanthi = MAX(T1.lanthi) FROM TEST T1 (NOLOCK) GROUP BY T1.masv,T1.mamh,T1.hocky ) TMP Tương đương với việc tạo một bảng TMP, sau đó insert dữ liệu vào bảng này Khi nào thì sử dụng và sử dụng như thế nào ? Cái nào tùy vào kinh nghiệm của người viết. Một trường hợp khác có thể sử dụng derived như sau Các bạn hay phải Join 2 bảng với nhau để lấy dữ liệu, nhưng với trường hợp 2 bảng đều rất lớn, vậy join cả 2 bảng với nhau, liệu có cần thiết không khi ta chỉ cần 1 vài trường trong 2 bảng mà thôi ? Tôi ví dụ có 2 bảng A và B Bảng A là tblCustomer có các trường CustomerID CustomerName CustomerAddress CustomerBOD v.v.... Bảng B là tblOrderDetails lưu các giao dịch gồm có OrderID CustomerID v.v... Bây giờ tôi muốn biết tên của khách hàng (CustomerName) khi có OrderID Thường các bạn sẽ truy vấn như sau SELECT A.CustomerName FROM tblCustomer A INNER JOIN tblOrderDetails B ON A.CustomerID = B.CustomerID WHERE B.OrderID = @OrderID Thực sự là rất lãng phí nếu 2 bảng A và B có rất nhiều row, lên đến hàng triệu chẳng hạn. Trong khi chỉ cần thao tác trên 1,2 trường ở mỗi bảng. Nhận xét. Bảng tblCustomer chỉ cần thao tác với 2 trường CustomerID và CustomerName Do đó (SELECT CustomerID,CustomerName FROM tblCustomer) DerivedTable1 Bảng tblOrderDetails chỉ cần 2 trường OrderID và CustomerID (SELECT CustomerID,OrderID FROM tblOrderDetails ) DerivedTable2 Sau đó bạn INNER JOIN hai Derived table trên với nhau Câu truy vấn cuối cùng như thế nào các bạn tự giải quyết coi như một bài tập nhỏ Cái gì tự làm sẽ hiểu nhanh hơn Có thể đa số các bạn test trên local host, hoặc truy vấn theo kiểu chạy đúng, ra đúng là ok. Nhưng tối ưu để chạy nhanh, để không tốn bộ nhớ, giảm I/O là một công việc rất thú vị Thực sự các bạn có thể test các câu truy vấn của mình trên các bảng lớn mới thấy rõ nhược điểm của câu truy vấn do mình viết ra @Xebuyt : Tôi thấy bạn rất hay sử dụng Cursor. Có lẽ đấy là nhược điểm. Vì đa số có thể không dùng Cursor mà chạy vẫn nhanh hơn nhiều Bạn thử tìm hiểu về set based xem sẽ rõ hơn tôi muốn nói gì @Dqninh : Tôi thấy bác rất am hiểu, và thực sự là người có kinh nghiệm. Nghe như bác nói thì đã có 20 năm kinh nghiệm, xứng đáng làm bậc cao niên ) Mong có thể trao đổi dc nhiều kinh nghiệm với bác Nhưng có thắc mắc của tôi về file NDF ở topic dưới kia. Tôi nghĩ là bác đã sai
Oracle DBA - Hướng dẫn Oracle HCM Y!M red_devilic
Quote - 08-03-2009 13:35 #5 dq_ninh
- View Profile
- View Forum Posts
- View Articles
Cám ơn. Đúng là derived table. Nhưng dịch làm sao đây? Thôi thì dịch ra là bảng nhớ cho nó tiện. Vì thật sự, nó là một bảng nhớ. Còn NDF file. Thật sự là Foxfro dùng NDF (cho index, nếu tôi nhớ không lầm). Riêng về SQL thì tôi chưa bao giờ phải dùng tới NDF file bao giờ, và thú thật là cũng chưa bao giờ nghe nói tới NDF file, mặc dù là tôi thường có mặt tại bản doanh của Microsoft/SQL trong những buổi học chỉ dành riêng cho bạn vàng (Gold Partner) của họ trước khi một ấn bản mới ra đời cả hàng tháng. Nếu cần dùng thêm file, tôi chỉ tạo thêm MDF file mà thôi. Nhưng nhân tiện bạn đề cập tới NDF, thì tôi cũng dạo một vòng google thử. Thì ra nó có thật - thế mới biết biển học thì mông mênh vô cùng, mà đời người thì có hạn. Và sau đây là một vài messages trên mạng về NDF file: hasn't the use of the 'ndf' file extension in sql implementations dropped off? Msg 1: i mean... many environments don't even bother with .ndf schemes because there isn't really a reason for it other than to differentiate them. am i mistaken? thoughts? Msg 2: well yes... 'once upon a time' that was the usual course of action, but seriously; how many environments still do it as a form of regular practice? also... is there a reason besides 'just doing it to represent a second, third, or fourth file? all files could be .mdf, and it woud be fine any way. Msg 3: That's right, just personal preference. ------------------------- SQL Server Magazine Forum Pro Msg 4: exactly... so for the sake of keeping the data files uniform, and free from confusion there should be more material referring to .mdf being the standard convention. some people believe because there is a different name there is a different purpose of the file. thats just a bit confusing for starters. và còn nhiều, nhiều nữa, nhưng đại để thì các ý kiến cũng giống nhau. Có lẽ vì vậy mà MS không bao giờ nhắc đến NDF file trong các buổi học bổ túc của họ. Và, như đã thấy ở trên, chúng ta nên bỏ quên cái NDF vào dĩ vãng của nó. Như tôi đã trình bày ở bài đó, bất quá, nó chỉ là một cái file extension không bắt buộc người xử dụng phải dùng. Hiểu về cấu trúc của một MDF file mới thật sự là quan trọng.
Quote - 08-03-2009 23:11 #6 Red Devilic
- View Profile
- View Forum Posts
- View Articles
Bác nói ko sai Nhưng cách đề cập của bác nó mang tính khẳng định quá nên tôi mới phải hỏi lại. Và thực chất thì để thế nào cũng ok
Oracle DBA - Hướng dẫn Oracle HCM Y!M red_devilic
Quote - 09-03-2009 01:55 #7 dq_ninh
- View Profile
- View Forum Posts
- View Articles
Ờ, có lẽ đúng. Tôi cũng nên coi lại văn phong của mình một chút!
Quote - 09-03-2009 08:19 #8 m_tien_85
- View Profile
- View Forum Posts
- View Articles
Cảm ơn tất cả các bạn nghen.
Quote
- Site Areas
- Cá nhân
- Tin nhắn
- Subscriptions
- Ai đang online ?
- Tìm kiếm trong chuyên mục
- Trang chủ
- Chuyên mục
- Hoạt động của DDTH
- Hoạt động Off-line
- Các cuộc thi dành cho DDTH.com
- Sinh nhật DDTH.com
- Hội Cầu Lông DDTH.com
- Công tác xã hội
- Tin Học Xanh
- Nhật ký THX
- Thông báo
- Thông báo cũ
- Góp ý, đề nghị
- Nhắc nhở - Vi phạm
- Ứng tuyển moderator
- Hoạt động Off-line
- Thảo luận chung
- CNTT Việt Nam và Quốc tế
- Các cuộc thi CNTT
- Tin tức CNTT
- Tin PR & Khuyến mãi
- ISP - ICP - OSP
- Viettel
- FPT
- VNPT
- CMC
- SPT
- Nghề nghiệp
- Tư vấn pháp luật
- Thương mại điện tử
- Advertisers & Publishers
- Search Engine Optimization/Marketing
- Review sản phẩm & công nghệ
- Startup-Khởi Nghiệp!
- CNTT Việt Nam và Quốc tế
- Tư vấn - Thị trường & Kiến thức cần biết
- Tin học căn bản
- Máy tính & Sức khỏe
- Hỗ trợ kỹ thuật
- Phần mềm
- Softwares Request
- Giới thiệu phần mềm
- Máy tính để bàn
- CPU & Mainboard & Memory
- VGA & PSU & Overclocking
- Phần cứng chung & Thiết bị ngoại vi
- Laptop
- Dell
- Tin học căn bản
- Mobile devices
- iPhone & iPad
- iOS Apps
- Android Smartphones
- Android Apps
- BlackBerry
- BlackBerry Apps
- Windows Phones
- Windows Phones Apps
- Wireless Technology
- Tablets
- Discussion
- iPhone & iPad
- Đào tạo
- Công nghệ giáo dục
- Học về CNTT
- Du học
- E-books
- Requests
- Chứng chỉ tin học quốc tế
- Microsoft
- Cisco
- Hand-on Lab
- Technology
- Những chứng chỉ khác
- GroupStudy
- English Room
- Lập trình
- Các ngôn ngữ lập trình
- .NET
- C/C++
- Visual Basic
- Pascal/Delphi/Kylix
- Java
- Các vấn đề khác trong lập trình
- Projects
- Data Structures + Algorithms
- GameDev Zone
- Các ngôn ngữ lập trình
- Hệ thống - Mạng
- Security Zone
- Anti-DDoS
- Windows
- Linux - Unix
- LAN - WAN
- Security Zone
- Internet & Web & Multimedia
- Lập trình web
- DDTH-CMS
- Thiết kế web
- Shockwave Flash
- Graphic Design
- HTML - CSS
- Design Resources
- CMS
- Yêu cầu thiết kế
- CLB Webmasters
- Hot Links !!!
- Scripts - Mods
- Showcase
- Xử lý phim / âm thanh
- Photoshop & Illustration
- 3D World
- Game
- Lập trình web
- Cơ sở dữ liệu
- MS SQL Server
- Oracle
- Hệ CSDL khác
- Domains/Hosting
- Web Hosting / Domain
- Cloud Computing
- Dedicated Hosting / VPS
- Technical & Security
- Advertising
- Hosting Support
- VinaCIS
- Web Hosting / Domain
- Giao lưu - Thư giãn
- Tự giới thiệu - Giao lưu
- Interview
- Miền Bắc
- Miền Trung
- Social Networks
- Góc thư giãn
- Văn tuyển Làng Mùi
- Truyện cười
- Chuyện thời sự
- Đố vui
- Music - Movie - Sport
- Nhiếp ảnh
- Albums
- Máy ảnh - Máy quay phim - Phụ kiện
- Bóng Đá
- Tự giới thiệu - Giao lưu
- Trung Tâm Giao Dịch
- Linh Kiện PC - Laptop
- Điện thoại, tablet và phụ kiện
- Server, domain, hosting
- Giáo dục, đào tạo về CNTT
- Việc làm CNTT
- Người tìm việc
Bookmarks
Bookmarks
- Digg
- del.icio.us
- StumbleUpon
Quy định
- Bạn không thể tạo chủ đề mới
- Bạn không thể trả lời bài viết
- Bạn không thể gửi file đính kèm
- Bạn không thể sửa bài viết của mình
- BB code is On
- Smilies are On
- [IMG] code is On
- [VIDEO] code is On
- HTML code is Off
Quy định DDTH.com
Theo giờ GMT +7 :: 11:49. Powered by: vBulletin version 4.2.0. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Founded by vikhoa. Developed by DDTH Members. Hosted by ODS.vnTừ khóa » Tính điểm Trung Bình Sinh Viên Sql
-
Câu Lệnh Truy Vấn SQL - Programming - Dạy Nhau Học
-
/forum/p?t=5939
-
Group By Having Trong SQL Server | How Kteam
-
AVG() Lấy Giá Trị Trung Bình Của Cột Trong MySQL - Web Cơ Bản
-
Hàm AVG Trong SQL Server
-
CÁC CÂU LỆNH TRONG QUẢN LÝ SINH VIÊN TRÊN SQL - 123doc
-
Bài Tập Lớn Môn SQL Quản Lý điểm Sinh Viên - Tài Liệu Text - 123doc
-
Câu Lệnh SQL Nào Sử Dụng để Tính điểm Thi Trung Bình Cho Bài Kiểm ...
-
Bài Tập Quản Lý Sinh Viên SQL - Jundat95
-
Bài Tập Quản Lí Sinh Viên SQL | VFO.VN
-
Số Lượng SQL - Cách Chọn, Tính Tổng Và Hàng Trung Bình Trong SQL
-
Bài 3: Câu Lệnh Truy Vấn Dữ Liệu Trong SQL | Tìm ở đây
-
Hướng Dẫn Cách Tính điểm Trung Bình Môn Cho Học Sinh Và Sinh Viên ...
-
Ngôn Ngữ SQL Truy Vấn Có Gom Nhóm | Thư Viện Hướng Dẫn