بدست آوردن آخرین رکورد خرید مشتریان
با سلام خدمت همه برنامه نویسان گرامی
من یه جدول دارم که شامل فیلدهای CustomerID و BuyDate و Cost است. توی این جدول اطلاعات خرید مشتریان ذخیره میشود. میخوام یک select بنویسم که آخرین رکورد خرید هر مشتری رو نشون بده و اگر میشه sum این رکوردها رو هم محاسبه کنه. اما نمیدونم چه جوری میشه یه همچین دستوری نوشت؟ لطفا منو راهنمایی کنین
نقل قول: بدست آوردن آخرین رکورد خرید مشتریان
توی جدولتون فقط همین سه فیلد را دارید؟
نقل قول: بدست آوردن آخرین رکورد خرید مشتریان
سلام
آخرین رکورد خرید اگه تاریخ هاتون شمسی ذخیره شده با Max(BuyDate) قابل دستیابی هست.
select customerid, sum(cost), (select max(buydate) from buy where customerid=b.customerid) from buy b
group by customerid
نقل قول: بدست آوردن آخرین رکورد خرید مشتریان
--SQL Server Any Version
SELECT T.*,
D.sm as total
FROM
(
SELECT CustomerID,
MAX(BuyDate) as mx,
SUM(Cost) as sm
FROM table_name
GROUP BY CustomerID
)D
INNER JOIN table_name T
ON D.mx = T.BuyDate
AND D.customerID = T.customerID;
--SQL Server >= 2005
SELECT CustomerID و BuyDate و Cost, total
FROM
(
SELECT *,
SUM(Cost) OVER(PARTITION BY CustomerID) as total
ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY BuyDate DESC) as rnk
FROM table_name
)D
WHERE rnk = 1;
نقل قول: بدست آوردن آخرین رکورد خرید مشتریان
سلام
یک نگاهی به این پست بینداز. احتمالا خیلی راحت مشکلت حل میشه.
دستوری در Sql2005 و Sql2008 اضافه شده است با نام Outer Apply و Cross Apply
http://argess.ir/Persian/QuestionVie...uestionId=1006
نقل قول: بدست آوردن آخرین رکورد خرید مشتریان
با سلام به همگی
من در این مورد یه سوالی داشتم
دستوراتی که در بالا گفتین مال زمانی است که آخرین سفارش مشتریان فقط شامل یک رکورد باشد، حالا اگه تعداد رکوردها بیشتر باشد به چه صورتی باید عمل بشه، تعداد رکوردهایی که برای یک روز خاص دارم بیشتر از یک رکورد است ولی تعداد آنها نیز مشخص نیست، ممکن است برای یک مشتری 5 رکورد باشد ، ممکن است 10 رکورد باشد، میخوام کل اطلاعات یک مشتری برای آخرین تاریخ نمایش داده شد.
ممنون میشم اگه راهنمایی بفرمایید
نقل قول: بدست آوردن آخرین رکورد خرید مشتریان
سلام
create table Customer
(
Id int primary key,
Fname nvarchar(20),
)
create table [Order]
(
Id int,
CustomerID int,
Tarikh datetime,
constraint FK1 foreign key (Id) references Customer(Id)
)
کوئری لیست تمام مشتریان می آورد بعد آخرین تاریخ سفارششان هم نمایش می دهد
نکته اینه که باید left join کنی و گروه بندی بر اساس نام
select MAX(Tarikh),Fname from Customer left join [Order] on Customer.Id=[Order].CustomerID
group by (Fname)