আমার একটি শিশু টেবিল রয়েছে যা এই জাতীয় কিছু:
[শুল্কের তারিখ সারণী]
| Customer ID | Some Date | Balance |
+-------------+------------+---------+
| 1 | 2012-04-30 | 20.00 |
| 1 | 2012-03-31 | 50.00 |
| 2 | 2012-04-30 | 0.00 |
| 2 | 2012-03-31 | 10.00 |
| 3 | 2012-03-31 | 60.00 |
| 3 | 2012-02-29 | 10.00 |
আমি এর মতো একটি ফলাফল সেট পেতে সক্ষম হতে চাই - সর্বশেষ তারিখ সহ প্রতিটি ক্লায়েন্টের জন্য একটি রেকর্ড:
| Customer ID | Some Date | Balance |
+-------------+------------+---------+
| 1 | 2012-04-30 | 20.00 |
| 2 | 2012-04-30 | 0.00 |
| 3 | 2012-03-31 | 60.00 |
আমি জানি যে আমি নিম্নলিখিত এসকিউএল (এসকিউএল সার্ভার সিনট্যাক্স) সহ প্রতিটি স্বতন্ত্র "গ্রাহক আইডি" এর জন্য এটি করতে পারি:
select top 1 [Some Date], [Customer ID], [Balance]
from [Cust Date Table]
where [Customer ID] = 2
order by [Some Date] desc
| Customer ID | Some Date | Balance |
+-------------+------------+---------+
| 2 | 2012-04-30 | 0.00 |
তবে আমি যে তিনটি রেকর্ড চাইছি তা কীভাবে পাব তা নিশ্চিত নই। আমি নিশ্চিত নই যে এটি এমন পরিস্থিতি যা উপ-কোয়েরি বা অন্য কোনও কিছুর জন্য কল করে।
দয়া করে নোট করুন যে কোনও প্রদত্ত [গ্রাহক আইডি] এর জন্য সর্বোচ্চ তারিখটি আলাদা হতে পারে, (উদাহরণস্বরূপ, গ্রাহকের 3 এর সর্বোচ্চ তারিখ 2012-03-31, অন্য রেকর্ডগুলির সর্বোচ্চ তারিখ 2012-04-30 রয়েছে) -30 আমি চেষ্টা করেছি
select [Customer ID], MAX([Some Date]) AS [Latest Date], Balance
from [Cust Date Table]
group by [Customer ID], Balance;
সমস্যাটি হ'ল এটি প্রতিটি গ্রাহকের জন্য কেবল এক সারিতে ফিরে আসে না - এটি একাধিক সারি দেয়।