PDA

View Full Version : سوال: نمایش همه ستون ها به همراه ستون distinct



xboycooper
شنبه 23 بهمن 1389, 12:55 عصر
سلام دوستان
من یه جدول دارم در مورد اطلاعات شرکت ها حالا هر شرکت ماهانه چندین فرم رو ارسال میکنه و توی جدول قرار میگیره . نیاز به کوئری یا دستوری در دلفی دارم که بتونه آخرین اطلاعاتی که درباره هر شرکت وارد شده نشون بده ...

شرکت ها بر اساس شماره ثبت منحصر به فرد میشن وقتی از دستور distinct استفاده میکنم فقط همون ستون شماره ثبت رو نشون میده وقتی هم به صورت ترکیبی استفاده میکنم جواب درست نمیده و چند شماره ثبت تکراری هم نشون میده ...

مثلا به این صورت :
select * from data where shomaresabt IN (select distinct shomaresabt from data)

hadisalahi2
شنبه 23 بهمن 1389, 18:34 عصر
خوب الان همون کد بالا چه مشکلی داره؟

xboycooper
شنبه 23 بهمن 1389, 23:05 عصر
مشکل کد بالا اینکه مقادیر تکراری در شماره ثبت رو نشون میده !

ببینید یدونه تست درست کردم . توی عکس زیر بهتر متوجه میشید .

http://up.iranblog.com/images/27r0c6ssq7wlq55qn98k.jpg

جدول اول که اطلاعات کامل جدوله .
خروجی دوم تکراری های فیلدی که منحصر به یک شرکت هستش رو نشون میده .
خروجی سوم مشکل دارم !
خروجی آخر چیزیه که نیاز دارم . یعنی وقتی شرکت ها بر اساس شماره ثبت منحصر به فرد شدن آخرین اطلاعات وارد شده شرکت رو به همراه بقیه ستون ها نمایش بده !
حالا یا با کوئری اگه راه دیگه ای داره با کدنویسی توی دلفی ...

متشکرم

AliReza Vafakhah
یک شنبه 24 بهمن 1389, 00:20 صبح
خوب شما باید اون Distinct سومی را بردارید چون مثلا برای فیلد Reg که در قادیر 160 دارای دو مقدار متفاوت در فیلد info هست این باعث میشه که آخرین رکورد تکراری با توجه به مقدار Reg نمایش داده بشه.

اگر شما در دو یا چند رکورد دارای یک Reg و Info یکسان بودید اون وقت آره باید از روشی استفاده می کردید.

xboycooper
یک شنبه 24 بهمن 1389, 07:55 صبح
خب پس با این اطلاعاتی که داخل جدول دارم امکان همچین کاری ندارم ؟

با این اوصاف باید یه روال بنویسم هر بار بر اساس reg فیلتر کنه و آخرین رکورد رو برداره و توی یه جدول موقتی کپی کنه در نهایت اطلاعات وارد شده به جدول موقتی رو نشون بده ! راه درستیه ؟

AliReza Vafakhah
یک شنبه 24 بهمن 1389, 15:25 عصر
خب پس با این اطلاعاتی که داخل جدول دارم امکان همچین کاری ندارم ؟


من فکر نمی کنم راهی باشه باز در تالار پایگاه داده سوالتون رو مطرح کنید.


با این اوصاف باید یه روال بنویسم هر بار بر اساس reg فیلتر کنه و آخرین رکورد رو برداره و توی یه جدول موقتی کپی کنه در نهایت اطلاعات وارد شده به جدول موقتی رو نشون بده ! راه درستیه ؟

راه بدی نیست ولی در صورت ثبت اطلاعات زیاد ، کارایی برنامه رو میاره پایین.