PDA

View Full Version : ایجاد تراز حسابداری در sql



ali_sadri
جمعه 21 مرداد 1390, 18:58 عصر
سلام دوستان
من یک برنامه می نوشتم که به یک اشکال در کوری برخورد کردم اگه کسی می دونه لطفا کمک کنه
سئوال :برای کوری گرفتن از یک ستون در اس کیو ال به طوری که برای چند محدوه تاریخ متفاوت ستونهای متفاوتی ایجاد بشه:مثلا از تاریخ 1/1/1390 تا 30/1/1390 نتیجه در یک ستون واز تاریخ 1/1/1390 الی 30/5/1390 در ستون دیگر نشان بدهد مثل تراز حسابداری
من فکر می کردم می شه با union این کار را انجام داد ولی union همه را در یک ستون قرار داد(ترکیب کرد)
متشکرم

یوسف زالی
جمعه 21 مرداد 1390, 19:22 عصر
سلام.
اگر تعداد ثابت هست: با دو ستون که در اونها از case استفاده شده.
اگر تعداد ستونها متغیره
برای بالاتر از 2000 از pivot
برای 2000 از dynamic (از این روش برای 2005و 2008 هم استفاده میشه)

آیا تعداد ستونهای شما کم و زیاد میشه؟ یا ثابت هست؟
فرمت داده های جدول شما چگونه هست؟

ali_sadri
شنبه 22 مرداد 1390, 16:20 عصر
سلام
اول تشکر از لطفتان
دوم این که از دو ستون ثابت در جدول می خواهم چهار ستون ثابت در بیاورم
حالا اگر ممکنه شما هر دو روش (ثبت و متغییر)را توضیح بفرمایید
متشکرم
:خجالت::خجالت:

یوسف زالی
شنبه 22 مرداد 1390, 18:35 عصر
تشکر که دکمه داره:چشمک:
خواهش می کنم دوست عزیز.
فرض می کنیم فیلد های اصلی جدول شما برای Select این طوری باشه:
ID...Price...DocDate

روش اول:


select SUM(case when DocDate between '90/01/01' and '90/01/30' then Price else 0 end) F1,
SUM(case when DocDate between '90/01/01' and '90/05/30' then Price else 0 end) F2
from AccTransHds

group by ها رو خودتون اضافه کنید.

در روش دوم شما در حقیقت به تفکیک تاریخ ها می تونین گزارش داشته باشین.
یک متغیر رشته ای ساخته میشه و با توجه به شرایطتون دستورات در اون نوشته میشه.
دست آخر هم با Exec ران میشه.

فکر می کنم که همون روش اول کفایت می کنه برای کار شما.
اگر اشکالی داشتید بگید که اگر از دستمون بر اومد کمک کنیم.
موفق باشید.