امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ایجاد یک Query
نویسنده پیام
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #1
مشکل در ایجاد یک Query
یه بانک اکسس هست که اگه زحمت بکشین بازش کنید ممنون میشم.
من برای هر فاکتور کد فروشنده و تاریخ رو دریافت کردم
در جدول اقلام فاکتور که با کد فاکتور به جدول قبلی متصل میشه، لیست کالاهای خریداری شده از اون فروشنده رو دارم.
از Join کردن جدول اقلام فاکتور با جدول فاکتور، چیزی مثل این عکس بدست میاد:
[تصویر:  Table_1.bmp]
این رکوردها همه مال یک فروشنده هستند اما تو تاریخ های مختلف هر کالایی رو با قیمتهای متفاوتی فروخته که در این مثال دو کالای 12 و 15 رو داریم.
من از هر نمونه کالا فقط جدیدترین قیمت رو میخوام
یعنی خروجی باید این باشه 005
[تصویر:  Table_2.bmp]
چون آخرین باری که کالای 12 فروش رفته در تاریخ 27-3-2010 به قیمت 55 ریال بوده
و جدیدترین تاریخی که کالای 15 فروش رفته 28-3-2010 به قیمت 20 ریال بوده.
چطور یک خروجی مثل عکس دوم بگیرمQuestion
موندم توش... 036

اینجور مواقع کاری که غیرمنطقی باشه مطلقاً ممنوعه
ولی ظاهراً درخواست من با منطق منطبقه


۱۲-تير-۱۳۸۹, ۰۴:۵۷:۴۳
ارسال‌ها
پاسخ
far_222000 آفلاین
مدير بخش ديتابيس
*****

ارسال‌ها: 955
موضوع‌ها: 68
تاریخ عضویت: شهریور ۱۳۸۴

تشکرها : 468
( 1249 تشکر در 422 ارسال )
ارسال: #2
RE: مشکل در ایجاد یک Query
از DISTINCT و MAX استفاده کن!!

پارک24
مرجع خرید و فروش خودرو
۱۲-تير-۱۳۸۹, ۱۲:۵۰:۲۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: مشکل در ایجاد یک Query
کاری که میخواهی به این راحتی نمیشه
این یه نمونه هست ولی فقط وقتی درست جواب میده که 2 تاریخ یک شکل وجود نداشته باشه و (فیلد تاریخ از نوع int باشه)

کد:
select cod,date,fi from product
where
date in(select max(date) from product group by cod)

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۲-تير-۱۳۸۹, ۱۳:۵۷:۰۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #4
RE: مشکل در ایجاد یک Query
نقل قول: کاری که میخواهی به این راحتی نمیشه
جاذبه اش به همینه که جدول من فقط سه فیلد داره و با اینکه چیز پیچیده ای نیست اما تا به حال به Query مورد نظر دست نیافته ام.

نقل قول: فقط وقتی درست جواب میده که 2 تاریخ یک شکل وجود نداشته باشه
متأسفانه امکانش هست که برای چند کالای متفاوت تاریخ های یکسان موجود باشه چون در یک روز خیلی کالاها فروش میرن.

نقل قول: از DISTINCT و MAX استفاده کن!!
چگونه؟

شیطونه میگه یه حلقه تکرار به تعداد رکوردها تو خود VB بنویسم ولی هدف یادگیری SQL بود نه فقط گرفتن خروجی.
این هم یک کلک رشتی دیگه که اگه منطقی باشه و تأییدش کنید حتماً ازش استفاده می کنم:
Query1 = q1

کد:
SELECT Max(tblBuyFactor.fDate) AS fDate, tblBuyFactorItems.fProductID
FROM tblBuyFactor INNER JOIN tblBuyFactorItems ON tblBuyFactor.fBuyFactorID = tblBuyFactorItems.fBuyFactorID
WHERE (tblBuyFactor.fProviderID=[])
GROUP BY fProductID;


Query2= q2

کد:
SELECT (tblBuyFactor.fDate), tblBuyFactorItems.fProductID, (tblBuyFactorItems.fSinglePrice)
FROM tblBuyFactor INNER JOIN tblBuyFactorItems ON tblBuyFactor.fBuyFactorID = tblBuyFactorItems.fBuyFactorID
WHERE (tblBuyFactor.fProviderID=[]);


Final Query

کد:
SELECT *
FROM q2
WHERE (fProductID & '=' & fDate) In
(
SELECT (fProductID & '=' & fDate) From q1
);

نظر مثبتتون چیه دوستان؟
البته هنوز منتظر پاسخ آقا فریدون هستم چون خودم بلد نیستم با Distinct کار کنم.

کاش این کلک آخر جواب نمیداد!
الان باید کلی فکر و محاسبه کرد که آیا Final Query همیشه درست عمل میکنه یا نه؟


(آخرین ویرایش در این ارسال: ۱۲-تير-۱۳۸۹, ۱۹:۴۷:۲۰، توسط mojtabamalaekeh.)
۱۲-تير-۱۳۸۹, ۱۹:۲۱:۰۷
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در ایجاد یوز و پسورد برای بانک اطلاعاتی در SQL SERVER 2008 sepahbod 6 6,909 ۰۸-بهمن-۱۳۹۲, ۱۳:۵۷:۰۳
آخرین ارسال: sepahbod
  مشکل در نوشتن query taksa2012 3 3,352 ۲۱-مهر-۱۳۹۲, ۰۹:۱۹:۰۹
آخرین ارسال: lord_viper
Rolleyes [سوال] ایجاد خروجی از بانک javaweb 2 3,494 ۱۶-خرداد-۱۳۹۲, ۲۲:۱۹:۳۹
آخرین ارسال: Ghoghnus
  Query Analiser sav68 3 3,218 ۱۵-اسفند-۱۳۸۷, ۱۰:۳۱:۴۵
آخرین ارسال: far_222000
  ایجاد تیبل در sql (سوال) eidazha 1 2,275 ۲۳-اردیبهشت-۱۳۸۶, ۱۰:۵۹:۳۵
آخرین ارسال: esmaeily-hosein

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS