ورود

View Full Version : سوال: قرار دادن اطلاعات دو table در detaile کریستال ریپورت



mahziar
پنج شنبه 22 مرداد 1388, 08:38 صبح
با سلام خدمت دوستان عزیر به یه مشکل خیلی اسااسی بر خوردم و نمیدونم چه جوری میشه حلش کرد من یه گزارش با کریستال ساختم و در قسمت detail اون از دو table استفاده کردم که اطلاعات رو بر اساس یه فیلد مشخص جستجو می کنه و نشون میده . اما مشکل اینجاست که اگر از table اولی دو رکورد و از table دومی 3 رکورد رو انتخاب کنه روی هم بجای نشون دادن 3 رکورد در detail
- 6 رکورد رو نشون میده یعنی باضای هر رکورد اون یکی رو تکرار میکنه:عصبانی++:

shafi21
پنج شنبه 22 مرداد 1388, 09:48 صبح
اگه میخوای 3رکورد نشون بده باید داخل دستور سلکت یه فیلد از دو جدول رو برابر هم قرار بدی
کدت روبنویس تا ایرادشو پیدا کنیم

mahziar
جمعه 23 مرداد 1388, 20:55 عصر
من از دو store procedure برای نشون دادن اطلاعات استفاده می کنم . اولی
CREATE PROCEDURE dbo.factor_service_repair (@a1 as nvarchar(50)) as
select * from repair_service where cservice=@a1
GO
و دومی
CREATE PROCEDURE dbo.factor_service_part (@a1 as nvarchar(50)) as
select * from part_service where cservice=@a1
GO
همین طور که می بینی از هر دو table یک فیلد یکسان در سلکت جستجو می شن .

A!ABDKOK
شنبه 31 مرداد 1388, 07:32 صبح
با سلام خدمت دوستان عزیر به یه مشکل خیلی اسااسی بر خوردم و نمیدونم چه جوری میشه حلش کرد من یه گزارش با کریستال ساختم و در قسمت detail اون از دو table استفاده کردم که اطلاعات رو بر اساس یه فیلد مشخص جستجو می کنه و نشون میده . اما مشکل اینجاست که اگر از table اولی دو رکورد و از table دومی 3 رکورد رو انتخاب کنه روی هم بجای نشون دادن 3 رکورد در detail
- 6 رکورد رو نشون میده یعنی باضای هر رکورد اون یکی رو تکرار میکنه:عصبانی++:

در واقع این جداول با هم Cross join شده اند و تعداد اطلاعات آنها در هم ضرب می شود

راه حل:
1- استفاده از کدی که توش جداول با آی دی همجنس Join شده باشن
2- استفاده از Database Expert برای Join کردن این اطلاعات
3- استفاده از دو Subreport که زیر هم لود شوند
4- استفاده از دستور Union