ورود

View Full Version : DISTINCT روی فیلد



fakhravari
سه شنبه 19 فروردین 1393, 23:49 عصر
با سلام


SELECT dbo.B_Forums.ForumName, dbo.B_Topics.Subject
FROM dbo.B_Forums INNER JOIN dbo.B_Topics ON dbo.B_Forums.ForumID = dbo.B_Topics.ForumID





نمایش اطلاعات
ForumName SubjectRational Rose آموزش برنامه نشنال رز
UML آشنایی با مفهوم UML
UML پایگاه داده ها در UML
SQL Server مروری بر Replication
SQL Server Install SQL Server 2008
Access Database توضیحات
My Sql Transaction در My Sql
Oracle برسی دیتابیس اوراکل
installshield شناسایی دیتابیس Microsoft SQL Server 2000 در برنامه Install Shield
installshield ترفند های UI در InstallShield
Crystal Reports فایل آموزشی Crystal Reports
Crystal Reports Basics of Crystal Report for .NET Programmers
Fast Reports کامپوننت Fast Reports
Rave Reports برسی Rave Reports
WebSite سایت کوچک با برنامه نویسی VB
WebSite سایت کوچک با برنامه نویسی #C
WebSite قالب وب سایت با فرمت HTML
WebSite سایت کوچک با برنامه نویسی PHP
Application دفترچه تلفن زبان دلفی
Application زمانت نامه بانکی با برنامه نویسی دلفی
#C برنامه نویسی تجاری و چند لایه در net.
HTML آموزش HTML 4
Delphi مروری بر محیط دلفی ٧
VB کار با API ویندوز با برنامه VB
PHP مرجع کامل آموزش زبان PHP
جاوا اسکریپت مرجع برنامه نویسی جاوا اسکریپ
installshield آموزش کامل نرم افزار InstallShield
Multimedia Builder آموزش مولتي مديا بيلدر

چطوری یکی از هر موضوع را انتخاب کنه
DISTINCT روی 2 فیلد کار نمیکنه

حمیدرضاصادقیان
چهارشنبه 20 فروردین 1393, 12:51 عصر
سلام.شما وقتی Distinct میذارید چند فیلد رو مینویسید.ترکیب چند فیلد رو باهم Unique میاره.

fakhravari
چهارشنبه 20 فروردین 1393, 16:05 عصر
شما حساب کنید یک join دارید حالا بر روی ForumName میخواهید DISTINCT بگیرید

fakhravari
پنج شنبه 21 فروردین 1393, 16:10 عصر
Declare @Tbl Table (ForumName NVARCHAR(100),Subject NVARCHAR(100),TopicID int)Declare @Tb2 Table (ForumName NVARCHAR(100),Subject NVARCHAR(100),TopicID int)


insert into @Tbl SELECT dbo.B_Forums.ForumName, dbo.B_Topics.Subject, dbo.B_Topics.TopicID FROM dbo.B_Forums INNER JOIN dbo.B_Topics ON dbo.B_Forums.ForumID = dbo.B_Topics.ForumID


DECLARE @ForumName NVARCHAR(100),@Subject NVARCHAR(100),@TopicID int;


DECLARE Table_Cursor CURSOR
FOR


SELECT ForumName,Subject,TopicID FROM @Tbl


OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @ForumName,@Subject,@TopicID
WHILE (@@FETCH_STATUS = 0)
BEGIN


IF NOT EXISTS(SELECT top(1)ForumName FROM @Tb2 WHERE ForumName=@ForumName)
INSERT INTO @Tb2 SELECT @ForumName,@Subject,@TopicID

FETCH NEXT FROM Table_Cursor INTO @ForumName,@Subject,@TopicID
END CLOSE Table_Cursor DEALLOCATE Table_Cursor


select * from @Tb2

Reza_Yarahmadi
شنبه 23 فروردین 1393, 12:26 عصر
میتونید از Group By هم استفاده کنید. فقط فیلدهای بعدی باید معلوم بشه کدومشون واکشی بشه (در مثال زیر کمترین مقدار ID به خروجی میره)
With TBL as(
Select ForumName, MIN(ID) AS ID
From dbo.B_Forums INNER JOIN dbo.B_Topics ON ....)
Select * From dbo.B_Forums INNER JOIN dbo.B_Topics ON ...
Where
ID IN (Select ID From TBL)

fakhravari
شنبه 23 فروردین 1393, 20:26 عصر
جناب یار احمدی میشه query کاملش بزارید
2 جدول گروه و مطلب
SELECT dbo.B_Forums.ForumName, dbo.B_Topics.Subject
FROM dbo.B_Forums INNER JOIN dbo.B_Topics ON dbo.B_Forums.ForumID = dbo.B_Topics.ForumID
خروجی select اسم گروه و موضوع میاره
کد گروه B_Forums.ForumID
کد مطلب B_Topics.TopicID