PDA

View Full Version : جمع فیلدها در یک کوئری و جمع نهایی در فیلدی مجازی



davoodmz
پنج شنبه 16 فروردین 1386, 13:21 عصر
با سلام خدمت دوستان
کد زیر را داریم که 2 فیلد دارد و ما از آنها جمع گرفتیم حالا میخواهیم یک ستون دیگه داشته باشیم در کوئری که جمع دو ستون قبلی را بدهد /.
کد زیر:

Select Sum(field1) as s1 ,Sum(field2) as s2
From Table1
حال میخواهیم که جمع s1,s2 را در s3 نمایش دهیم که حاصل کوئری ما مانند ذیل شود:

s1 s2 s3
50 100 150
با تشکر از دوستان
داود

nasr
پنج شنبه 16 فروردین 1386, 13:56 عصر
روی Query کلیک راست کن FieldsEditor و یک فیلد از نوع Calculated بساز با نام (S3)

حالا در OnCalcFields مبوط به Query بنویس:


query1.fieldbyname(s3).asfloat := query1.fieldbyname(s1).asfloat + query1.fieldbyname(s2).asfloat

mzjahromi
پنج شنبه 16 فروردین 1386, 17:27 عصر
select sum(Field1) as s1,Sum(field2) as s2,sum(Field1+Field2) as s3

SYNDROME
پنج شنبه 16 فروردین 1386, 17:50 عصر
با سلام
Select Sum(field1) + Sum(field2) as s3
From Table1
جمع مستقیم در S3 قرار می کیرد.

davoodmz
شنبه 18 فروردین 1386, 15:10 عصر
با سلام خدمت دوستان
جناب آقای مهندس ذوالقدر من جمع field1 و field2 را با کلی شرط و شروط به دست آوردم و نمی خواهم ( یعنی کند طولانی میشود) دوباره همون شرطها را بنویسم من میخواهم که جمع s1 و s2 را در فیلد s3 قرار دهم بدون تکرار کدهای s1 و s2 .
من کوئری را هنگام زدن کلید ایجاد میکنم و نمیتوانم فیلد محاسباتی به آن اضافه کنم
در اصل ما میخواهیم که بعد از اینکه عملیات جمع یا هر عملی دیگر روی کوئری ایجاد شد و s1 و s2 حساب شد از این به بعد ما بتونیم روی s1 و s2 مانور دهیم مثلا جمع s1 و s2 را بدست آوریم یا هر عمل ریاضی دیگر روی s1 و s2
باتشکر ار همه دوستان
داود

arshia_
یک شنبه 19 فروردین 1386, 09:04 صبح
این جواب شما است
یکبار محاسبه و با هم جمع می شه


با سلام
Select Sum(field1) + Sum(field2) as s3
From Table1
جمع مستقیم در S3 قرار می کیرد.

mzjahromi
یک شنبه 19 فروردین 1386, 12:00 عصر
با سلام خدمت دوستان
جناب آقای مهندس ذوالقدر من جمع field1 و field2 را با کلی شرط و شروط به دست آوردم و نمی خواهم ( یعنی کند طولانی میشود) دوباره همون شرطها را بنویسم من میخواهم که جمع s1 و s2 را در فیلد s3 قرار دهم بدون تکرار کدهای s1 و s2 .
من کوئری را هنگام زدن کلید ایجاد میکنم و نمیتوانم فیلد محاسباتی به آن اضافه کنم
در اصل ما میخواهیم که بعد از اینکه عملیات جمع یا هر عملی دیگر روی کوئری ایجاد شد و s1 و s2 حساب شد از این به بعد ما بتونیم روی s1 و s2 مانور دهیم مثلا جمع s1 و s2 را بدست آوریم یا هر عمل ریاضی دیگر روی s1 و s2
باتشکر ار همه دوستان
داود
بار چندانی تحمیل نمیکنه شما یک بار شروط رو اعمال میکنید و مجموع گیری این دو هم در همان یک بار انجام میدهید.
با این حال میتونید از فیلدهای محاسباتی استفاده کنید

mzjahromi
یک شنبه 19 فروردین 1386, 12:03 عصر
این جواب شما است
یکبار محاسبه و با هم جمع می شه


با سلام
Select Sum(field1) + Sum(field2) as s3
From Table1
جمع مستقیم در S3 قرار می کیرد.


بار چندانی تحمیل نمیکنه شما یک بار شروط رو اعمال میکنید و مجموع گیری این دو هم در همان یک بار انجام میدهید.
با این حال میتونید از فیلدهای محاسباتی استفاده کنید

این جواب در صورتی درسته که جمع تفکیکی رو نخواهیم

davoodmz
یک شنبه 19 فروردین 1386, 13:44 عصر
با سلام خدمت دوستان
ببیند کوئری من 10 فیلد دارد که هر کدام مانند زیر شرطهایی دارند مثلا برای محاسبه s1

'select count( case when(no>200 and doreyi<>''no'' and pm<>''ok'')then no else 100l end) as s1 ,... +
حالا در پایان من میخواهم عملیات را روی s1 و s2 و.... انجام دهم که نوشتن کد راحتتر و اشتباه کمتر
بشه مثلا برای جمع کردن s1,s2 نیاز نباشه که کد چند خطی نوشته شود
مانند اینکه در یک فرم یک dbedit میزاریم و فیلدش را مساوی s1 قرار میدهیم و ...
بازهم از همه دوستان کمال تشکر را دارم
داود