uses an IF...ELSE statement : IF « Transact SQL « SQL Server / T-SQL Tutorial






4>
5>
6> create table Billings (
7>     BankerID           INTEGER,
8>     BillingNumber      INTEGER,
9>     BillingDate        datetime,
10>     BillingTotal       INTEGER,
11>     TermsID            INTEGER,
12>     BillingDueDate     datetime ,
13>     PaymentTotal       INTEGER,
14>     CreditTotal        INTEGER
15>
16> );
17> GO
1>
2> INSERT INTO Billings VALUES (1, 1, '2005-01-22', 165, 1,'2005-04-22',123,321);
3> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (2, 2, '2001-02-21', 165, 1,'2002-02-22',123,321.);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (3, 3, '2003-05-02', 165, 1,'2005-04-12',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (4, 4, '1999-03-12', 165, 1,'2005-04-18',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (5, 5, '2000-04-23', 165, 1,'2005-04-17',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (6, 6, '2001-06-14', 165, 1,'2005-04-18',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (7, 7, '2002-07-15', 165, 1,'2005-04-19',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (8, 8, '2003-08-16', 165, 1,'2005-04-20',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (9, 9, '2004-09-17', 165, 1,'2005-04-21',123,321);
2> GO

(1 rows affected)
1> INSERT INTO Billings VALUES (0, 0, '2005-10-18', 165, 1,'2005-04-22',123,321);
2> GO

(1 rows affected)
1>
2>
3> DECLARE @MinBillingDue money, @MaxBillingDue money
4> DECLARE @EarliestBillingDue smalldatetime, @LatestBillingDue smalldatetime
5> SELECT @MinBillingDue = MIN(BillingTotal - PaymentTotal - CreditTotal),
6>     @MaxBillingDue = MAX(BillingTotal - PaymentTotal - CreditTotal),
7>     @EarliestBillingDue = MIN(BillingDueDate),
8>     @LatestBillingDue = MAX(BillingDueDate)
9> FROM Billings
10> WHERE BillingTotal - PaymentTotal - CreditTotal > 0
11> IF @EarliestBillingDue < GETDATE()
12>     BEGIN
13>         PRINT 'Outstanding Billings overdue!'
14>         PRINT 'Dated ' + CONVERT(varchar,@EarliestBillingDue,1) +
15>             ' through ' + CONVERT(varchar,@LatestBillingDue,1) + '.'
16>         PRINT 'Amounting from $' + CONVERT(varchar,@MinBillingDue,1) +
17>             ' to $' + CONVERT(varchar,@MaxBillingDue,1) + '.'
18>     END
19> ELSE
20>     PRINT 'No overdue Billings.'
21> GO
No overdue Billings.
1>
2> drop table Billings;
3> GO








20.7.IF
20.7.1.The syntax of the IF...ELSE statement
20.7.2.Using an Expression with an Explicit Unknown Value
20.7.3.Using an Expression with an Unknown Value Returned from One of the Participating Simple Logical Expressions
20.7.4.Short circuit aborts any further processing of a logical expression as soon as its result can be determined.
20.7.5.IF (@au_id IS NULL)
20.7.6.IF EXISTS
20.7.7.Use function returned value
20.7.8.IF (SELECT ID FROM inserted) like '99[0-9][0-9]'
20.7.9.IF (SELECT COUNT(*) FROM inserted) > 1
20.7.10.If statement with aggregate function
20.7.11.Use if and like to check a pattern
20.7.12.Implementing the ELSE Statement In Our Sproc
20.7.13.A script that tests for outstanding Billings with an IF statement
20.7.14.uses an IF...ELSE statement