PDA

View Full Version : مشکل ضرب شدن رکورد ها



mohammadreza.4747
پنج شنبه 08 خرداد 1393, 18:13 عصر
من توی برنامه ای که ساختم میخوام تویه یک گزارش (کریستال ریبرت) مقدار دریافتی ها و برداخت های مربوط به هر شخص رو در یک فرم رو به روی هم دیگه نشون بدمبعد 3 تا جدول دارم 1.کارگر 2.دریافت ها 3.برداخت هاکه ایدی هر کارگر توی جدول 2 و 3 (FOREIGN KEY) شد.
حالا اگر هم یه دونه برداخت و هم یه دونه دریافت برای یکی ثبت شده باشه درست عمل میکنه (یعنی اینجوری میخوام عمل کنه در هر صورت)ولی اگر یکی از اون یکی بیشتر باشه یا کمتر باشه یا حتی مساوی باشه میاد رکورد ها رو در هم ضرب دکارتی میکنه و حاصل کوریریم تکراری میشهاگر کسی میتونه کمک کنه واقعا گیر کردم :((

اینم کدم


SELECT DISTINCT REG.WID,REC.Reception, REC.DateReception,REC.MemoReception,PAY.Payment,PA Y.DatePayment,PAY.MemoPaymentFROM RegWorkers AS REG,PayWorkers AS PAY,RecepWorkers REC
WHERE REG.WID =153 AND REG.WID=PAY.WID AND PAY.WID=REC.WID

GILAS_MVC
جمعه 09 خرداد 1393, 22:47 عصر
سلام
لطفا ساختار جداولتون رو اینجا قرار بدین

mohammadreza.4747
یک شنبه 11 خرداد 1393, 16:41 عصر
سلام
میشه بیشتر توضیح بدین دقیقا چیو بگم
منظورتون روابط بین جدولاست؟؟؟

mohammadreza.4747
یک شنبه 11 خرداد 1393, 17:45 عصر
فکر کنم سوالم رو بد گفتم

حالا دوتا عکس گذاشتم که توی عکس اول برای مثال ای دی 148 رو به پروسیجر دادم که رکوردها در هم ضرب شدن
حالا میخوام ببینم راهی هست که اینجوری نشه
و به ازای یک دریافتی یک پرداختی سلکت شه طوری که هیچ کدوم تکراری نشن

اگرم نشه که مجبورم دریافتی و پرداختی ها رو یک جدول کنم
1.
https://app.box.com/s/4nd9gjypjki7hgqldeqa
2.
https://app.box.com/s/e8y9gcdbj0hupyrq49wn

pezhvakco
سه شنبه 13 خرداد 1393, 09:26 صبح
سلام
شما دوتا جدول کاری دارین : دریافت و پرداخت
با ستون های = WID, Date , Fee , Description
و می خوایین در گزارش این دو جدول با هم در یک جدول نمایش بشن .

شاید برای این کار بهتره با Union All کار کنید = چون می خواهید ردیف های دو جدول در یک جدول باشند .



Select WID ,(Select FName From Reg Where Reg.WID = Pay.WID) AS FName ,(Select LName From Reg Where Reg.WID = Pay.WID) as LName
Date ,Description ,Fee as Col1 ,0 as Col2
From Pay
Union All
Select WID ,(Select FName From Reg Where Reg.WID = Rec.WID) AS FName ,(Select LName From Reg Where Reg.WID = Rec.WID) as LName
Date ,Description ,0 AS Col1 , Fee AS Col2
From Rec

و یا شاید

mohammadreza.4747
سه شنبه 13 خرداد 1393, 21:00 عصر
سلام
شما دوتا جدول کاری دارین : دریافت و پرداخت
با ستون های = WID, Date , Fee , Description
و می خوایین در گزارش این دو جدول با هم در یک جدول نمایش بشن .

شاید برای این کار بهتره با Union All کار کنید = چون می خواهید ردیف های دو جدول در یک جدول باشند .



Select WID ,(Select FName From Reg Where Reg.WID = Pay.WID) AS FName ,(Select LName From Reg Where Reg.WID = Pay.WID) as LName
Date ,Description ,Fee as Col1 ,0 as Col2
From Pay
Union All
Select WID ,(Select FName From Reg Where Reg.WID = Rec.WID) AS FName ,(Select LName From Reg Where Reg.WID = Rec.WID) as LName
Date ,Description ,0 AS Col1 , Fee AS Col2
From Rec

و یا شاید

اقا مشکلم حل شد دستت درد نکنه

واقعا گیر کرده بودم :تشویق::تشویق: