PDA

View Full Version : حرفه ای: جمع تجمعی بر روی یک Query با وجود یک فیلد ID که مقادیر تکراری دارد



Omid_Manam
دوشنبه 14 تیر 1389, 09:07 صبح
سلام دوستان
سریع میرم سر اصل مطلب یک Query دارم که حاصل Union شدن 2 تا جدول با هم دیگه است که توی هر دو جدول یک فیلد ID دارم که حالا شدن یکی پس اگه توی جدول 1 یه شماره ID 12 داشتم و توی جدول 2 هم شماره ID 12 داشتم حالا 2تا دارم . بخاطر همین تو جمع تجمعی 2تا فیلد 12 رو با هم جمع میزنه و حاصل جمع رو اشتباه میده .

حالا واسه رفع این اشکال یه پیشنهاد بدین .

سپاسگزارم

hassanf
دوشنبه 14 تیر 1389, 11:42 صبح
سلام



Declare @Temp Table(
IdNew int Identity(1, 1),
Id int,
Field1 int,
Field1 int,
Field1 int,
.
.
.
.
)
Insert Into @Temp
Select Id,
Field1,
Field1,
Field1,
.
.
.
.
From Table1
Insert Into @Temp
Select Id,
Field1,
Field1,
Field1,
.
.
.
.
From Table2

Select *
From @Temp



با Row_Number هم می تونید اینکارو انجام بدید.

Omid_Manam
سه شنبه 15 تیر 1389, 11:59 صبح
دوست عزیز از پیشنهاد جدول موقتت ممنون

محمد سلیم آبادی
پنج شنبه 17 تیر 1389, 20:13 عصر
سلام دوستان
سریع میرم سر اصل مطلب یک Query دارم که حاصل Union شدن 2 تا جدول با هم دیگه است که توی هر دو جدول یک فیلد ID دارم که حالا شدن یکی پس اگه توی جدول 1 یه شماره ID 12 داشتم و توی جدول 2 هم شماره ID 12 داشتم حالا 2تا دارم . بخاطر همین تو جمع تجمعی 2تا فیلد 12 رو با هم جمع میزنه و حاصل جمع رو اشتباه میده .

حالا واسه رفع این اشکال یه پیشنهاد بدین .

سپاسگزارم

زمانی که از UNION ALL استفاده میشه، سطرهای تکراری از بین نمی روند و در خروجی ظاهر می شوند. برای اینکه سطرهای تکراری یکبار درنظر گرفته بشه بایستی UNION را بکار بگیرین.

در ضمن فوق العاده بهتر بود که Query خودتون را پست می کردین.

Omid_Manam
شنبه 19 تیر 1389, 10:58 صبح
زمانی که از UNION ALL استفاده میشه، سطرهای تکراری از بین نمی روند و در خروجی ظاهر می شوند. برای اینکه سطرهای تکراری یکبار درنظر گرفته بشه بایستی UNION را بکار بگیرین.

در ضمن فوق العاده بهتر بود که Query خودتون را پست می کردین.

با دستور Union va Union All کاملا آشنام ولی خوب اگه از Union استفاده کنم و سطر تکراری از بین بره یعنی اینکه دیگه اون رکورد رو نشون نمیده در صورتی که من به هر 2تاشون نیاز دارم

Omid_Manam
یک شنبه 20 تیر 1389, 17:02 عصر
دوست عزیز hassanf (http://barnamenevis.org/forum/member.php?u=36974) سلام میشه لطف کنین و مدل Row_Number رو هم بگین . ممنون

MOJTABAATEFEH
یک شنبه 20 تیر 1389, 20:23 عصر
دوست عزیز اگر درست متوجه شده باشم جمع ها رو به تفکیک جدول ها می خواین خب بهتره موقع Union یک فیلد اضافی با مقدار ثابت در نظر بگیری مثلا مقدار 1 این فیلد برای جدول اول و مقدار 2 این فیلد برای جدول دوم و از این فیلد موقع ترکیب دو جدول برای بدست آوردن جمع استفاده کنی


موفق باشید