PDA

View Full Version : نمایش یک عدد از رکوردهای تکراری



Delphi 2010
سه شنبه 13 خرداد 1393, 16:58 عصر
با عرض سلام و خسته نباشید
بنده با دستور زیر یک نمونه از رکوردها رو نمایش میدم یا به عبارت دیگر رکوردهای تکراری رو حذف می کنم و بقیه رو نشون میدم و در ضمن بقیه فیلدها رو هم نمایش میده


Select t.* From Table_Name t Inner Join (Select Min(Id) as Id From Table_Name Group By Field_Name)res on t.Id = res.Id




حالا بنده می خوام بدونم کدوم یکی از رکوردها تکراری هست یعنی رکوردهای غیرتکراری رو نمایش نده
مثلا در رکوردهای زیر رو داریم


نام
سن


علی
16


محمد
20


محمد
20


رضا
18



دوستان لطف کنید و کمک کنید که نتیجه رو اینطوری نمایش بده



نام
سن


محمد
20



ممنون میشم کمکم کنید
خیلی ضروری هستش

fakhravari
سه شنبه 13 خرداد 1393, 20:16 عصر
SELECT DISTINCT column_name,column_name
FROM table_name;

Delphi 2010
سه شنبه 13 خرداد 1393, 20:24 عصر
عزیزم لطفا سوال رو کامل بخونید

کد بنده همین کار رو می کنه

می خواه داده های تکراری رو فقط ببینم

مثال هم زدم

Delphi 2010
سه شنبه 13 خرداد 1393, 20:25 عصر
کد شما رکوردهای غیر تکراری رو هم میاره

pezhvakco
چهارشنبه 14 خرداد 1393, 08:43 صبح
سلام
یکم سخت گفتین پرسش تون رو ولی اگه درست فهمیده باشم =>

جدولی دارین با ستون های : FName , Age

و می خوایین ردیف های در گزارش باشد که
1) برای یک نام بیش از یک ردیف وجود دارد
2) ردیفی که قرار است نمایش داده بشه، بیش ترین داده "سن" را داشته باشد
شاید =>

SELECT *
FROM TableName as Tb01
where Age = (Select MAX(Age) FROM TableName as Tb02 where Tb02.FName = Tb01.FName)
and FName in (SELECT FName
FROM TableName AS Tb03
group by Tb03.FName
having COUNT(Tb03.FName) > 1)
order by Tb01.FName

و شاید هر راه دیگه .

یه نکته :

عزیزم لطفا سوال رو کامل بخونید
کد بنده همین کار رو می کنه ...
به نظر میاد عصبانی هستید ؟

Delphi 2010
چهارشنبه 14 خرداد 1393, 10:00 صبح
نه عزیز دلم عصبی نیستم فقط گلایه ای دارم اینه که بعضی از دوستان سوال رو نخونده میان جواب میدن

دوستمون جوابی دادن که خودم توی سوال نوشته بودم و به این قسمت اصلا توجهی نکرده بودن که نوشته بودم
در ضمن بقیه فیلدها رو هم نمایش میده

pezhvakco
چهارشنبه 14 خرداد 1393, 12:55 عصر
... بعضی از دوستان سوال رو نخونده میان جواب میدن

دوستمون جوابی دادن ..
همین که پاسخی می دهند خوب است (هرچند اشتباه = شما دیگه نیازی نیست این راه رو برین).

تست کردین "کد دستور" رو و به خواسته خودتون رسیدین

Delphi 2010
چهارشنبه 14 خرداد 1393, 13:26 عصر
نه عزیز دلم جواب نداد
فقط می خوام رکوردهایی که تکراری هستن رو نشون بده
موردی که هست دو تا فیلد مهمه
یعنی موردهایی که نام آنها محمد و سن آن ها 20 هست رو نمایش بده



نام
سن


علی
16


محمد
20


محمد
20


رضا
18



نتیجه:



نام
سن


محمد
20

yasesepid
چهارشنبه 14 خرداد 1393, 13:48 عصر
نه عزیز دلم جواب نداد
فقط می خوام رکوردهایی که تکراری هستن رو نشون بده
موردی که هست دو تا فیلد مهمه
یعنی موردهایی که نام آنها محمد و سن آن ها 20 هست رو نمایش بده



نام
سن


علی
16


محمد
20


محمد
20


رضا
18



نتیجه:



نام
سن


محمد
20




ببین این نتیجه ای که میخای رو میده؟

SELECT Name,age
FROM tbl
GROUP BY Name,age
having COUNT(name)>1

Delphi 2010
چهارشنبه 14 خرداد 1393, 13:55 عصر
ممنونم داداشی
مشکل فقط الان اینه که این دو تا ستون رو فقط نشون میده ولی میخوام کل فیلدها رو هم نمایش بده

yasesepid
چهارشنبه 14 خرداد 1393, 14:52 عصر
ممنونم داداشی
مشکل فقط الان اینه که این دو تا ستون رو فقط نشون میده ولی میخوام کل فیلدها رو هم نمایش بده

ببینید،حداقل دو رکورد هست که نام=محمد و سن=20 ،حالا شما سایر اطلاعات کدوم یکی از این رکوردها رو میخای؟

Delphi 2010
چهارشنبه 14 خرداد 1393, 14:54 عصر
نه عزیز دلم
من برای مثال این دو فیلد رو گذاشتم
شما فرض کنید که فیلدهای نام خانوادگی و آدرس و تلفن رو هم داریم ولی نمی خوایم اون ها رو مورد بررسی قرار بده و فقط می خوایم در نتیجه نهایی که دو فیلد نام و سن رو مورد بررسی قرار داد بقیه فیلدها رو هم نمایش بده
مثال:
جدول اولیه بنده




نام
سن
آدرس
تلفن


علی
16
تهران
2222222


محمد
20
اصفهان
3333333


محمد
20
اصفهان
3333333


رضا
18
اهواز
5555555



با کد شما اینطوری نمایش میده:



نام
سن


محمد
20






ولی اینطوری میخوام نمایش بده


نام
سن
آدرس
تلفن


محمد
20
اصفهان
3333333

yasesepid
چهارشنبه 14 خرداد 1393, 15:07 عصر
نه عزیز دلم
من برای مثال این دو فیلد رو گذاشتم
شما فرض کنید که فیلدهای نام خانوادگی و آدرس و تلفن رو هم داریم ولی نمی خوایم اون ها رو مورد بررسی قرار بده و فقط می خوایم در نتیجه نهایی که دو فیلد نام و سن رو مورد بررسی قرار داد بقیه فیلدها رو هم نمایش بده
مثال:
جدول اولیه بنده




نام
سن
آدرس
تلفن


علی
16
تهران
2222222


محمد
20
اصفهان
3333333


محمد
20
اصفهان
3333333


رضا
18
اهواز
5555555



با کد شما اینطوری نمایش میده:



نام
سن


محمد
20





ولی اینطوری میخوام نمایش بده


نام
سن
آدرس
تلفن


محمد
20
اصفهان
3333333




این کد رو امتحان کن:

select * from Users
where name in(
select Name
FROM Users
GROUP BY users.Name,users.age
HAVING (COUNT(Users.Name) > 1))

Delphi 2010
چهارشنبه 14 خرداد 1393, 15:13 عصر
نشد عزیزم
و اگه بشه جستجو هم درش بزارید خیلی خوب میشه البته جستجوی Like

yasesepid
چهارشنبه 14 خرداد 1393, 15:26 عصر
نشد عزیزم
و اگه بشه جستجو هم درش بزارید خیلی خوب میشه البته جستجوی Like

هر فیلدی که قراره تو select بیاد باید توی groupby بذاری.
اینم جستجو:

SELECT
[Name]
,[age]
,[address]
FROM Users
where name like(N'%م%')
group by Name,address,age
having COUNT(Name)>1

Delphi 2010
چهارشنبه 14 خرداد 1393, 18:18 عصر
ممنون گلم
واقعا شرمنده
از همه دوستان عذر میخوام