1 ضمیمه
محاسبه اختلاف دو رکورد انتخاب شده
سلام دوستان لطفا به تصویر زیر نگاه کنید .
فرض بر این است مدیر ارشد چند فروشگاه زنچیره تصمیم دارد مراجعات به فروشگاه ها برای خرید را در ماه های مختلف کنترل و بررسی کند در و حاصل اختلاف دو رکورد در انتهای جدول مشاهده نماید حالا بحث انتخاب به سطرها و گرید مربوط به محیط برنامه نویسی است که من کاری به آن بخش ندارم می خواهم بدانم ولی در T-Sqlچکونه می توانیم اختلاف دو رکوزد را بدست بیاوریم؟
نقل قول: محاسبه اختلاف دو رکورد انتخاب شده
نقل قول:
نوشته شده توسط
khorsandreza
سلام دوستان لطفا به تصویر زیر نگاه کنید .
فرض بر این است مدیر ارشد چند فروشگاه زنچیره تصمیم دارد مراجعات به فروشگاه ها برای خرید را در ماه های مختلف کنترل و بررسی کند در و حاصل اختلاف دو رکورد در انتهای جدول مشاهده نماید حالا بحث انتخاب به سطرها و گرید مربوط به محیط برنامه نویسی است که من کاری به آن بخش ندارم می خواهم بدانم ولی در T-Sqlچکونه می توانیم اختلاف دو رکوزد را بدست بیاوریم؟
با پوزش بی جهت تاپیک را بروز کردم دوستان برای این موضوع راه حلی پیشنهاد ندارند؟
نقل قول: محاسبه اختلاف دو رکورد انتخاب شده
مجموعه رکوردها را با خودش join کنید
select t1.Date as date1, t2.Date as date2 , t2.Value-t1.Value as diffValue
from [TableName] t1 join [TableName] t2 on t1.Date < t2.Date
where t1.Date='139602' and t2.Date='139608'
اگر شرط را حذف کنید تمام تاریخها را با تاریخهای بعد از خودش مقایسه میکند که البته میشه به یک سال بخصوص محدودش کرد یا حتی یک ماه از دو سال را مقایسه کرد.
نقل قول: محاسبه اختلاف دو رکورد انتخاب شده
ابتدا یک تشکر زبانی چند روز بود درگیرش بودم دوما یک مثال از راهنمائی استادانه شما ایجاد کردم اگر دوستانی مثل به همیچین مشکلی برخورد کردند از دانش کاربردی شما بی بهره نباشند
CREATE TABLE [dbo].[Test](
[xdate] [nvarchar](8) NULL,
[val1] [int] NULL,
[val2] [int] NULL,
[val3] [int] NULL
) ON [PRIMARY]
INSERT [dbo].[Test] ([xdate], [val1], [val2], [val3]) VALUES (N'139601', 101, 310, 255)
INSERT [dbo].[Test] ([xdate], [val1], [val2], [val3]) VALUES (N'139602', 89, 314, 251)
INSERT [dbo].[Test] ([xdate], [val1], [val2], [val3]) VALUES (N'139603', 110, 210, 198)
INSERT [dbo].[Test] ([xdate], [val1], [val2], [val3]) VALUES (N'139604', 113, 279, 218)
select t1.xDate as date1,
t2.xDate as date2,
t2.Val1-t1.Val1 as val1,
t2.Val2-t1.Val2 as val2 ,
t2.Val3-t1.Val3 as val3
from test t1 join test t2 on t1.xDate < t2.xDate
where t1.xDate='139601' --and t2.xDate='139603'