ورود

View Full Version : ترکیب خروجی چند پروسیجر در قالب یک جدول



HamidNch
جمعه 29 مهر 1390, 18:50 عصر
سلام.
من چند پروسیجر دارم که هرکدام یک یا دوتا فیلد خروجی دارند و حالا من میخوام همه این پروسیجرها مستقل از هم اجرا شده و فیلدهای خروجیشان در قالب یک سطر جدول ایجاد گردد.
بطور مثال:
پروسیجر 1:

@U_ID INT
SELECT TOP 1 MAX(r_Date) as rDate, rAmount
FROM tbl_r
WHERE (r_UID = @U_ID)
GROUP BY rDate, rAmount
HAVING (rAmount > 0)
ORDER BY rDate DESC
پروسیجر 2:

SELECT TOP 1 pDate, pAmount
FROM tbl_p
WHERE (P_UID = @U_ID)
GROUP BY pDate,pState, pAmount
HAVING (pState = 'Success')') ')
ORDER BY pDate DESC

چون هردو پروسیجر بیشتر از یه سطر خروجی ندارن(به خاطر TOP 1) من میخوام که خروجی پروسیجر 1 و خروجی پروسیجر 2 در یه سطر ادغام بشه و بصورت یه سطر از جدول برگردونده بشه:
خروجی 1: 1390/07/10 , 15000
خروجی 2: 1390/07/20 , 34000
خروجی موردنظر: 1390/07/10 , 15000, 1390/07/20 , 34000
باتشکر

یوسف زالی
جمعه 29 مهر 1390, 21:09 عصر
سلام.
هرکدام از خروجی ها رو در جدول موقتی بریزید و نتیجه اونها رو با هم ادغام کنید.

مثال:
declare @T1(T1ID int identity, F1 int, F2 int) insert into @T1 exec P1
declare @T2 table(T2ID int identity, F int) insert into @T2 exec P2
select * from @T1 join @T2 on T1ID = T2ID

روشی که عرض کردم برای یک ردیف و طبق شرایط مساله شما کمی ساده شده.
موفق باشید.