PDA

View Full Version : نمايش ندادن رکوردهای خاص در کريستال ريپورت



mzosan817
دوشنبه 03 آبان 1389, 07:17 صبح
چطوري و با چه فرمولي ميتونيم قيد کنيم که به ازاي هر رکورد اگه ستونX دوبار تکرار شد کل رکورد را نمايش نده
مثلا گزارش زير رو در نظر بگيريد:
ستون1 ستون2 ستون3
ali www eee
hasan ww ee
ali rr rrr
reza eee qqq
hasan sds dsss
من ميخوام سطرهاي 2و5 نمايش داده نشوند يعني مهم نيست که ستونهای ديگه تکراري نيستند من ميخوام که اگه ستون 3 اطلاعات تکراري داره فقط براي دفعه اول نمايش داده بشه و بقيه رکوردهاي با اين ستون تکراري نمايش داده نشوند
ممنون ميشم هر کي ميدونه منو راهنمايي کنه

Reza_Yarahmadi
دوشنبه 03 آبان 1389, 07:58 صبح
ميتونيد دستور SQL رو بصورت زير بنويسيد.
Select
*,
Identity(int , 1, 1) as ID
Into
#Temp
From
tbl

;With unic as
(
Select
Name,
Min(ID) as ID
From
#Temp
Group By
Name
)
Select
t.*
From
unic u inner Join #Temp t
on
u.ID = t.ID


Drop Table #Temp

mzosan817
دوشنبه 03 آبان 1389, 09:03 صبح
قسمت Identity(int , 1, 1) as ID رو خطا میده اصلا دستور identity رو قبول نداره

Reza_Yarahmadi
دوشنبه 03 آبان 1389, 09:23 صبح
ورژن SQL server شما چيه؟

mzosan817
دوشنبه 03 آبان 1389, 09:59 صبح
sql server2005

Reza_Yarahmadi
دوشنبه 03 آبان 1389, 10:09 صبح
كوئري بالا توي 2005 تست شده و مشكلي نداره.
دستور identity رو قبول داره و مشكل از اون نيست ، حدس ميزنم جدول مورد نظر شما فيلدي به نام ID داره ، در صورت درست بودن حدسم اگر فيلد ID شما بصورت سعودي مقدار دهي ميشه به جاي استفاده از Temp# از جدول خودتون استفاده كنيد

With unic as
(
Select
Name,
Min(ID) as ID
From
tbl
Group By
Name
)
Select
t.*
From
unic u inner Join tbl t
on
u.ID = t.ID
اگر هم بصورت صعودي پر نميشه كافيه كلمه ID رو در دستور بالا تغيير بديد تا درست بشه

پ.و:
وقتي كدي خطا ميده متن خطا رو هم قرار بديد تا بهتر بشه كمكتون كرد.(براي راحتي خودتون و سريعتر به جواب رسيدن سوالاتتون )

mzosan817
دوشنبه 03 آبان 1389, 11:35 صبح
اجازه بدین مطلب رو کاملا روشنش کنم
جدول دارای 2 ستون اصلی داره که اولین ستون، ستون نام هست،ستون دوم هم نوع درسی که شخص انتخاب میکنه
حالا رکوردهای جدول من به صورت زیر هست
ستون1 ستون2
علی حسنی ریاضیات
حسین علیمی شیمی
علی حسنی شیمی
علی حسنی ریاضیات
حسین علیمی ریاضیات

حالا من گزارش زیر رو میخوام
علی حسینی 2بار ریاضیات 1بار شیمی
حسین علیمی 1بار ریاضیات 1بار شیمی

یعنی گزارشم میخوام 3 ستون بالا رو داشته باشه
امکانش هست؟