PDA

View Full Version : سوال: پیدا کردن نزدیکترین تاریخی که یک کالای خاص در انبار به قیمتی خاص فروخته شده؟!



Ebrahim_Rayaneh
شنبه 26 اسفند 1391, 04:27 صبح
سلام
دو تا جدول دارم به اسامی tbl_Stockroom , tbl_Factor ، این دو جدول به هم join شدن ، اسکما جداول را به صورت عکس آوردم.می خوام یه کیوئری رو این دو تا جدول اجرا کنم به طوری که : یک کالای خاص به ids مثلا 30 در آخرین تاریخی که فروخته شده به چه قیمتی فروخته شده و همچنین چه تعداد از این کالای خاص در انبار (tbl_Stockroom) موجود هست. من سعی کردم یه کدی رو اجرا کنم اما ارور میده:


SELECT tbl_Factor.IDS, MAX(tbl_Factor.DateSale) AS MaxTime
FROM (SELECT tbl_Stockroom.IDS, tbl_Stockroom.NumShop, tbl_Factor.PriceSale, tbl_Factor.DateSale
FROM tbl_Stockroom INNER JOIN
tbl_Factor ON tbl_Stockroom.IDS = tbl_Factor.IDS
WHERE (tbl_Factor.IDS = 30)) AS subTable
GROUP BY tbl_Factor.IDS

خطایی که اس کیو ال سرور میده:به صورت عکس آوردم.اگه کسی از دوستان بتونه ایراد کد رو بگه یا کد بهتر یا بهینه شده تری داشته باشه ممنون میشم .

website.expert
شنبه 26 اسفند 1391, 11:17 صبح
سلام،
فکر کنم اگه به این صورت بنویسید درست میشه:
SELECT subTable.IDS,
MAX(subTable.DateSale) AS MaxTime
FROM (
SELECT tbl_Stockroom.IDS,
tbl_Stockroom.NumShop,
tbl_Factor.PriceSale,
tbl_Factor.DateSale
FROM tbl_Stockroom
INNER JOIN tbl_Factor
ON tbl_Stockroom.IDS = tbl_Factor.IDS
WHERE (tbl_Factor.IDS = 30)
) AS subTable
GROUP BY subTable.IDS
و دستورات لازم برای این دو کار رو هم باید بهش اضافه کنید:

به چه قیمتی فروخته شده و همچنین چه تعداد از این کالای خاص در انبار (tbl_Stockroom) موجود هست

website.expert
شنبه 26 اسفند 1391, 11:51 صبح
البته فکر کنم اگه از دستورات زیر هم استفاده کنید به خواسته هایی که دارید برسید:
SELECT TOP 1 f.IDS,
f.DateSale,
f.PriceSale,
s.NumShop
FROM tbl_Factor f
JOIN tbl_Stockroom s
ON s.IDS = f.IDS
WHERE f.IDS = 30
ORDER BY f.DateSale DESC