PDA

View Full Version : سوال: پیدا کردن آخرین رکورد دیتابیس چه جوریه؟



zayens
یک شنبه 04 فروردین 1392, 20:11 عصر
سلام
یه جدول دارم که عکسشو گذاشتم

101834

یه دستور select میخوام (sql Server) که بر اساس id_shobe گروه بندی کنه و آخرین رکوردش را بده
توجه:
1- من فقط یه ردیف را میخوام
2- id_shobe از کاربر گرفته میشه و در id_shobe@ باید ریخته بشه و آخرین رکورد طبق همین id_shobe را باید بده

مثال :
id_shobe=1@
________________________________
id ......... id_shobe.......... id_hesab
50 ....................... 1 ................. 4
________________________________

zayens
یک شنبه 04 فروردین 1392, 20:36 عصر
آخرین ردیف از دیتاتیبل


DataRow last = table.Rows[table.Rows.Count - 1];


اولین ردیف :

DataTable table = GetTable();
DataRow row = table.Rows[0];

عزیزم حداقل یه بار سوالو بخون

zayens
یک شنبه 04 فروردین 1392, 20:38 عصر
این کد منه ولی غلطه
SELECT TOP (1) * FROM T_TABLE where id_shobe=@id_shobe ORDER BY id asc

Mahmoud.Afrad
یک شنبه 04 فروردین 1392, 20:48 عصر
حذف رکورد های تکراری بر اساس فقط یک فیلد (http://barnamenevis.org/showthread.php?355390-%D8%AD%D8%B0%D9%81-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1-%D8%A7%D8%B3%D8%A7%D8%B3-%D9%81%D9%82%D8%B7-%DB%8C%DA%A9-%D9%81%DB%8C%D9%84%D8%AF)

Mahmoud.Afrad
یک شنبه 04 فروردین 1392, 20:57 عصر
کد زیر هم میشه:

select *
from tbl
where id in (select MAX(id) name from tbl group by id_shobe)


برای تک رکورد که id_shobe از قبل مشخص هست به صورت زیر:

select *
from tbl
where id in (select MAX(id) from tbl group by id_shobe having id_shobe = @idShobe)

zayens
یک شنبه 04 فروردین 1392, 20:58 عصر
حذف رکورد های تکراری بر اساس فقط یک فیلد (http://barnamenevis.org/showthread.php?355390-%D8%AD%D8%B0%D9%81-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1-%D8%A7%D8%B3%D8%A7%D8%B3-%D9%81%D9%82%D8%B7-%DB%8C%DA%A9-%D9%81%DB%8C%D9%84%D8%AF)

نه عزیزم اینم جوابم
نبود


خودم پیدا کردم زحمت نکشین
دمه فرومای خارجی که انقد سریع کمک کردن گرم!!!
SELECT m1.id, m1.id_shobe, m1.id_hesab_code
FROM T_TABLE AS m1 LEFT OUTER JOIN
T_TABLE AS m2 ON m1.id_shobe = m2.id_shobe AND m1.id < m2.id
WHERE (m2.id IS NULL) AND (m1.id_shobe = @id_shobe)

Mahmoud.Afrad
یک شنبه 04 فروردین 1392, 21:08 عصر
نه عزیزم اینم جوابم نبود

کافـی بود یه شرط ساده به کدی که من گذاشتم اضافه میکردی. فقط همین!

zayens
یک شنبه 04 فروردین 1392, 21:20 عصر
اینم یه جواب دیگه که راحت ترم هست

SELECT TOP (1) *
FROM T_TABLE
WHERE (id_shobe = @id_shobe)
ORDER BY id DESC

دیدین چقد راحت بود؟
شاخ غول قرار نبود بشکونین! :لبخند:

danialafshari
دوشنبه 05 فروردین 1392, 03:27 صبح
اینم یه جواب دیگه که راحت ترم هست

SELECT TOP (1) *
FROM T_TABLE
WHERE (id_shobe = @id_shobe)
ORDER BY id DESC

دیدین چقد راحت بود؟
شاخ غول قرار نبود بشکونین! :لبخند:

سلام دوست عزیز
به هر حال دوستان لطف کردند و برای سوال شما وقت گذاشتند اینجا کسی مجبور به جواب دادن نیست هر کس به نیتی در اینجا فعالیت می کند ولی متاسفانه بعضی وقتها با پست هایی در سایت مواجه میشویم که آدم را از ادامه ی این راه دلسرد می کند
دوست عزیز این سوال بسیار مطرح شده و جواب های مختلفی هم دارد که با یک جستجوی ساده در گوگل می توانستید به جواب برسید و لازم هم نبود سراغ تاپیک های خارجی بروید فقط جستجو در گوگل را یاد بگیرید
https://www.google.com/#hl=en&output=search&sclient=psy-ab&q=%D8%A2%D8%AE%D8%B1%DB%8C%D9%86+%D8%B1%DA%A9%D9%8 8%D8%B1%D8%AF+%D8%AB%D8%A8%D8%AA+%D8%B4%D8%AF%D9%8 7+%D8%AF%D8%B1+%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8 C%D8%B3&oq=%D8%A2%D8%AE%D8%B1%DB%8C%D9%86+%D8%B1%DA%A9%D9% 88%D8%B1%D8%AF+%D8%AB%D8%A8%D8%AA+%D8%B4%D8%AF%D9% 87+%D8%AF%D8%B1+%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB% 8C%D8%B3&gs_l=hp.12...0.0.1.4023.0.0.0.0.0.0.0.0..0.0...0.0 ...1c..7.psy-ab.8eB8iW82Kvo&pbx=1&bav=on.2,or.r_qf.&bvm=bv.44158598,d.ZWU&fp=b41d3c7db5fbcd2a&biw=1024&bih=667
کدی هم که شما قرار دادید یک Select از جدول انجام میده و ترتیبش رو نزولی می کنه به نظر شما اگر حجم اطلاعات زیاد باشد آیا این کار درستی است؟

موفق باشید