Her grup için en son girişi almak istediğim bir tablo var. İşte tablo:
DocumentStatusLogs tablo
|ID| DocumentID | Status | DateCreated |
| 2| 1 | S1 | 7/29/2011 |
| 3| 1 | S2 | 7/30/2011 |
| 6| 1 | S1 | 8/02/2011 |
| 1| 2 | S1 | 7/28/2011 |
| 4| 2 | S2 | 7/30/2011 |
| 5| 2 | S3 | 8/01/2011 |
| 6| 3 | S1 | 8/02/2011 |
Tablo, azalan sırada gruplanacak DocumentIDve sıralanacaktır DateCreated. Her biri DocumentIDiçin en son durumu almak istiyorum.
Tercih ettiğim çıktı:
| DocumentID | Status | DateCreated |
| 1 | S1 | 8/02/2011 |
| 2 | S3 | 8/01/2011 |
| 3 | S1 | 8/02/2011 |
Her gruptan sadece en üstte yer almak için herhangi bir toplama işlevi var mı? Aşağıdaki sahte kodlara
GetOnlyTheTopbakın:SELECT DocumentID, GetOnlyTheTop(Status), GetOnlyTheTop(DateCreated) FROM DocumentStatusLogs GROUP BY DocumentID ORDER BY DateCreated DESCBöyle bir işlev yoksa, istediğim çıktıyı elde edebilmemin bir yolu var mı?
- Veya ilk etapta, bunun nedeni normalleştirilmemiş veritabanı olabilir mi? Bence, aradığım şey sadece bir satır olduğundan,
statusüst tabloda da yer almalı mı?
Daha fazla bilgi için lütfen üst tabloya bakın:
Geçerli DocumentsTablo
| DocumentID | Title | Content | DateCreated |
| 1 | TitleA | ... | ... |
| 2 | TitleB | ... | ... |
| 3 | TitleC | ... | ... |
Durumuna kolayca erişebilmem için üst tablo böyle olmalı mı?
| DocumentID | Title | Content | DateCreated | CurrentStatus |
| 1 | TitleA | ... | ... | s1 |
| 2 | TitleB | ... | ... | s3 |
| 3 | TitleC | ... | ... | s1 |
GÜNCELLEME Bu tür sorunları çözmeyi kolaylaştıran "uygula" nın nasıl kullanıldığını öğrendim.