PDA

View Full Version : راهنمایی برای نوشتن select



ario
دوشنبه 17 شهریور 1382, 05:08 صبح
سلام
من میخوام یه دستور select برای گرفتن یه گزارش بنویسم اگه میشه لطفا کمکم کنید
یه فیلد بنام " تاریخ پایان(end)" دارم و یه ورودی که تعداد ماه است (مثلا 3)میخوام تمام مواردی
که تفاوت "تاریخ روز " با "تاریخ پایان " آنها بیشتر از 3 (ورودی) ماه است را لیست کنم
یعنی" ورودی <date()-end"که ورودی تعداد ماه است

روح اله معینی زاده
دوشنبه 17 شهریور 1382, 08:12 صبح
:oops: با سلام خدمت دوست گرامی

امان از دست محصولات مایکروسافت، کلی برات جواب نوشته بودم که یه هو خطا داد و همه صفحات اینترنت اکسپلوری که داشتم بسته شد ولی من پیله تر از این حرفایم مایکروسافت.

و اما مجدد.

توضیحاتی که شما دادی ازش این برداشت رو کردم که شما می خوای مقایسه ای رو روی بانک انجام بدی و تاریخ هایی رو که از یک حدی بیشتر هستند انتخاب کنی. با این فرض:




Dim fdate As String, cmd As String
fdate = Year(CDate(your_end_date)) & "/" & _
your_input_month & "/" & _
Day(CDate(your_end_date))
cmd = "SELECT * FROM mytable WHERE my_end_date > '" & fdate & "'"



توضیحات:
در کدی که مشاهده می کنید یک متغیر fdate در نظر گرفتم تا تاریخ n ماه بعد رو درست کنم. در هنگام ایجاد این رشته شما باید تاریخ پایان (your_end_date) و نیز ماه n ام (your_input_month) رو به اون بدید. البته این کد محدود است و فکر می کنم برای وقتی که سال عوض بشه کار نکنه که برای اون حالت شما باید خودتون اون رو ردگیری کنید. همانطور که از نام mytable پیداست، نام جدول شما در بانک اطلاعاتی است و my_end_date نیز نام فیلد تاریخ آن جدول می باشد. در جای دیگری هم فکر نکنم مشکلی داشته باشید.

نکته:
حتما تاریخ روز و ماه را به صورت دو رقمی و سال را چهار رقمی وارد کنید، چه در جداول بانک و چه در متن برنامه و یا هر جای دیگر. این کار را هم برای جلوگیری از خطا انجام بدید.

با احترام - خدانگهدار.

BehnamPro
دوشنبه 17 شهریور 1382, 17:01 عصر
در SQL در ویژوال بیسیک میشه از توابع ذاتی vb استفاده کرد.من درست متوجه منظور شما نشدم ولی vb تابعی داره که کار شما رو راحت می کنه. که این تابع اینه:

dateDiff(Parameter1,Date1,Date2)
این تابع تفاوت بین دو تاریخ رو بر حسب ماه,روز و یا... بر می گردونه.شما باید برای بدست اوردن تفاوت دو تاریخ برحسب ماه عبارت "m" را در قسمت parameter1 وارد کنید.

DateDiff("m",Date1,Date2)

ario
سه شنبه 18 شهریور 1382, 04:33 صبح
خیلی از لطف و توجهتون ممنونم
آقای روح الله ببخشید که مجبور شدید دوباره تایپ کنید

روح اله معینی زاده
سه شنبه 18 شهریور 1382, 06:47 صبح
با سلام :oops:

خواهش می کنم، چوبکاری نفرمایید، من که گفته بودم «من ...تر از این حرفایم مایکروسافت»

امیدوارم کد من به درد شما خورده باشه.

با احترام- خدانگهدار. :wink: