Lập trình với SQL ::Tính tổng

Bài này mình hướng dẫn bạn lập trình bằng SQL sử dụng vòng lặp. Mô tả bằng việc tính tổng của n số nguyên

Mình đã đọc trên các diễn đàn và có nhiều bạn chưa biết dùng vòng lặp trong SQL. Ở đây mình sử dụng SQL dùng vòng lặp để tính tổng của n số nguyên.
Nếu bạn đã từng học lập trình chắc bạn đã làm bài tập tính tổng của n số bằng ngôn ngữ cơ bản như Pascal, C, ... Giải thuật của bài này thì không có gì để bàn vì nó dễ.
Cách  thực hiện trong SQL như sau:

-- =============================================
-- Author:        webmaster@hmweb.com.vn
-- Description:   <Tínt tổng>
-- =============================================

 CREATE FUNCTION [dbo].[fuTinhTong]
(
      @n int
)
RETURNS bigint
AS
BEGIN
      DECLARE @i int
      SET @i=0
      DECLARE @Tong bigint
      SET @Tong=0
        -- Dùng vòng lặp
      WHILE @i<=@n
      BEGIN
            SET @Tong = @Tong+@i 
            SET @i=@i+1
      END
      RETURN  @Tong
END

Bạn chạy thử hàm trên như sau:

SELECT dbo.fuTinhTong(20) AS Tong20 -->210
SELECT dbo.fuTinhTong(10) AS Tong20 -->55

Áp dụng bài này: Trong bài viết trước mình đã viết hàm Tính số ngày trong tháng; Khi bạn cần tính số liệu thống kê theo tháng bạn có thể thực hiện như mô tả dưới đây

DECLARE @DayOfMonth int
SET @DayOfMonth = dbo.DaysInMonth(@Thang,@nam)
IF @DayOfMonth IS NULL SET @DayOfMonth=0
DECLARE @i int
SET @i=1
WHILE @i<=@DayOfMonth
BEGIN
      -- {Khối lệnh cần tính toán}
      SET @i=@i+1
END