PDA

View Full Version : کد جدول ضرب در t Sql



mohsen.nsb44
جمعه 09 اردیبهشت 1390, 12:50 عصر
سلام خدمت دوستان من یه کوئری می خوام بنویسم که جدول ضرب 10 در 10 رو نمایش بده
خب من از کد زیر استفاده کردم


declare
@i int,@j int,@m int
set @i=1
set @j=1
set @m=0

l:
set @m=@i*@j


if(@j<10)
begin
set @j=@j+1
set @m=@i*@j

end

if(@j=10)
begin
set @m=@i*@j
goto label
end
goto l
label:
select @m



اما این کد یه مشکل اساسی داره اونم اینه که نتیجه ضرب همه j ها رو در i که برابر 1 هستش میکنه و در m نشون میده
حالا من چطور می تونم مقدار هر ضربی که انجام میشه در یک ستون نشون بدم
مثلا 1*1 در یک ستون و 1*2 در یک ستون دیگه

pezhvakco
جمعه 09 اردیبهشت 1390, 18:10 عصر
سلام :

اما این کد یه مشکل اساسی داره اونم اینه که نتیجه ضرب همه j ها رو در i که برابر 1 هستش میکنه و در m نشون میدهشما خودت دقت کردی به بینی چی کپی کردی ...
چند تا متغییر تعریف کردی که اون ها رو در هم ضرب می کنی و در یک متغییر میریزی و در آخر نتیجه رو نمایش میدی .

مثلا 1*1 در یک ستون و 1*2 در یک ستون دیگه برای این کار باید یک جدول بسازی و هر خونه اون رو یکی یکی مقدار دهی کنی .
DECLARE @Table1 TABLE (Radif INT IDENTITY, Col1 INT, Col2 INT, ... , Col9 INT)

INSERT INTO Table1
(col1, col2, col3, ... ,col9)
VALUES (1 * 1, 1 * 2, 1 * 3, ... , 1 * 9)
میشه همین کد رو متناسب با خواسته ویرایش کرد .

محمد سلیم آبادی
جمعه 09 اردیبهشت 1390, 20:45 عصر
SELECT i * 1 [1],
i * 2 [2],
i * 3 [3],
i * 4 [4],
i * 5 [5],
i * 6 [6],
i * 7 [7],
i * 8 [8],
i * 9 [9],
i * 10 [10]
FROM (VALUES (1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9),
(10)
) D(i);