ايران ويج

نسخه‌ی کامل: ارسال كد SQL مورد نظر
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
جدولي داريم با فيلدهاي زير :
نوع سند ، شماره سند ، حساب ، مبلغ .

مي خواهيم اين جدول را با فيلد «حساب» گروه بندي(GroupBy) كنيم به نحوي كه مبالغ را به تفكيك هر حساب جمع بزند سپس در فيلد «شماره سند» براي هر حساب ، بزرگترين «شماره سند» را انتخاب نموده و سپس نوع سند و شماره سند متناظر با آن را درج نمايد .
كسي هست كه بتونه كد SQL آن را بنويسد . من كد آن را نوشتم ولي تمام «نوع سند» ها را ليست مي كند در حالي كه من مي خواهم فقط فيلد «نوع سند» متناظر با ماكزيمم «شماره سند» انتخاب شود كه نهايتاً يك ركورد تحويل ما بدهد نه چندين ركورد .
لطفاً مرا راهنمايي كنيد . سپاسگذارم .
شما SQL رو که نوشتی بگذار !
کد:
SELECT GardeshHesab.Type, Max(GardeshHesab.DOC_NO) AS MaxOfDOC_NO, Sum(GardeshHesab.DB_VAL) AS SumOfDB_VAL, Sum(GardeshHesab.CR_VAL) AS SumOfCR_VAL
FROM GardeshHesab
GROUP BY GardeshHesab.Type, GardeshHesab.HESAB
HAVING (((GardeshHesab.HESAB)=@HESAB));

با اين كد چطور مي توان كاري كرد كه فقط جدول را به وسيله حساب گروه بندي كند و فقط يك رديف كه شامل «حساب»،«نوع سند»،«ماكزيمم شماره سند» و جمع مبالغ در يك ركورد خلاصه شود . حساب را با مبالغ مربوط به آن جمع ميزند ملي براي هر شماره سند اين كار انجام مي شود . من ميخوام كه ماكزيمم شماره سند گرفته شود و نوع سند متناظر با آن انتخاب شود .
قبلاً از پاسخ شما سپاسگذارم .
دوست من ، نکته اول اینکه لطفا تمام مشکلات مربوط به این مسئله رو توی همین تاپیک دنبال بکن و از زدن تاپیک جدید خودداری کن .
من یک Select تو در تو نوشتم که جواب میده ( البته شاید به نحو بهتری هم بشه اینو نوشت ) :

کد:
SELECT Q1.HESAB,TYPE,MaxOfDOC_NO,SumOfDB_VAL,SumOfCR_VAL FROM GardeshHesab,
(
SELECT HESAB, Max(GardeshHesab.DOC_NO) AS MaxOfDOC_NO, Sum(GardeshHesab.DB_VAL) AS SumOfDB_VAL, Sum(GardeshHesab.CR_VAL) AS SumOfCR_VAL
FROM GardeshHesab
GROUP BY HESAB
) AS Q1
where  GardeshHesab.DOC_NO=Q1.MaxOfDOC_NO;