ورود

View Full Version : نحوه نوشتن یک شرط خاص



hrj1981
شنبه 21 شهریور 1394, 22:18 عصر
با درود
من یک دستور sql نوشتم که تو شرط گذاریش به مشکل برخوردم
من تو جدولم یک فیلد مبلغ ، یک فیلد نوع پرداخت ، یک فیلد تاریخ تراکنش و یک فیلد تاریخ چک دارم
حالا میخوام از ان جدول یک گزارش بگیرم تو یک بازه زمانی ، اما میخوام بگم اگر مقدار فیلد نوع پرداخت من نقد یا پوز بود شرط بازه زمانی رو بر روی فیلد تاریخ تراکنش اعمال کنه و اگر مقدار فیلد نوع پرداخت چک بود شرط رو بر روی فیلد تاریخ سررسید چک اعمال کنه
اساتید اگر راهنمای کنم سپاس گذار میشم

cherchil_hra
یک شنبه 22 شهریور 1394, 09:05 صبح
بافرض اینکه :
payType نوع پرداخت شما باشد. مقدار صفر یعنی چک، یک یعنی نقد و دو یعنی دستگاه پوز
CheckDate تاریخ چک
TranDate تاریخ تراکنش

SELECT *
FROM MyTable
WHERE CASE payType
WHEN 0 THEN CheckDate
ELSE TranDate
END BETWEEN @MinDate AND @MaxDate

یا case به این صورت :
CASE
WHEN payType IN (1, 2) THEN TranDate
ELSE CheckDate
END
موفق باشید!

SabaSabouhi
یک شنبه 22 شهریور 1394, 12:27 عصر
با درود
من یک دستور sql نوشتم که تو شرط گذاریش به مشکل برخوردم
من تو جدولم یک فیلد مبلغ ، یک فیلد نوع پرداخت ، یک فیلد تاریخ تراکنش و یک فیلد تاریخ چک دارم
حالا میخوام از ان جدول یک گزارش بگیرم تو یک بازه زمانی ، اما میخوام بگم اگر مقدار فیلد نوع پرداخت من نقد یا پوز بود شرط بازه زمانی رو بر روی فیلد تاریخ تراکنش اعمال کنه و اگر مقدار فیلد نوع پرداخت چک بود شرط رو بر روی فیلد تاریخ سررسید چک اعمال کنه
اساتید اگر راهنمای کنم سپاس گذار میشم

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

صبا صبوحی