PDA

View Full Version : تقسیم دو داده به هم



taknavaz123
چهارشنبه 30 اردیبهشت 1394, 15:49 عصر
باسلام

دوستان تو کد پائین 2تا فیلد omr و mande وجود داره که یکی ماندگاری یک محصول و دیگری عمر باقی مانده تا رسیدن به تاریخ انقضا است.
میخواستم یه فبلد نسبت بهش اضافه کنم تا مثلا با تقسیم omr به mande و سپس ضرب در 100 یک ستون نسبت به دست بیاد.

من کد

,(dbo.U_Diff_Date( dbo.U_SDate(GETDATE(),1),end_date)) / (dbo.U_Diff_Date(bach_no,end_date))*100 nesbat

رو برای گرفتن نسبت اضافه کردم.اما عدد مناسب رو به من نمیده و چون عمر کوچکتر ار ماندگاریه همش بهم صفر نشون میده.
یعنی در واقع انگار فقط قسمت صحیح تقسیم که رو صفر هست میبینه و قسمت اعشاری رو در نظر نمیگیره تا اعشاری رو ضربدر 100 کنه




Declare @Fact_Date char(8
Declare @Stock_Cd TinyInt ,@Stock_Cd2 TinyInt
Declare @GROUPOD_CD Smallint,@GROUPOD_CD2 Smallint
Declare @OD_CD Varchar(17),@OD_CD2 Varchar(17
Declare @ACC_YEAR Int

Set @fact_date = '94/02/27'
Set @stock_cd = null
Set @stock_cd2 = null
set @GROUPOD_CD=null
set @GROUPOD_CD2=null
Set @od_cd = Null
Set @od_cd2 = Null
Set @acc_year = 1394


Select Od_Cd,Od_Nm,Unit_Nm,Stock_Cd,Stock_Nm,Sefaresh,sum _io_quantity,sum_io_quantity_un_prc,Vazn_kol,End_D ate,bach_no,omr,mande
,CASE WHEN ISNULL(sum_io_quantity,0)=0 THEN 0 ELSE ISNULL(sum_io_quantity_un_prc,0)/ISNULL(sum_io_quantity,0) END Un_Prc
from

(
Select A.Od_Cd, A.Od_Nm, A.Unit_Nm, A.Stock_Cd, A.Stock_Nm,Sefaresh,a.End_Date,a.Bach_No
,sum(Io*Quantity) sum_io_quantity
,Sum(Io*Prc_Kol) sum_io_quantity_un_prc
,Sum(Io*Quantity*unitVazn)/1000 Vazn_kol
,dbo.U_Diff_Date(bach_no,end_date) mande
,dbo.U_Diff_Date( dbo.U_SDate(GETDATE(),1),end_date ) omr

FROM S_Vw_Article A
Where (A.Acc_Year = @Acc_Year)
And (@Fact_Date Is Null Or A.Fact_Date=@Fact_Date)
And (
(@Stock_cd Is Null)
Or((@Stock_cd = @Stock_cd2) And (Stock_cd=@Stock_cd))
Or((@Stock_cd <>@Stock_cd2) And (Stock_cd Between @Stock_cd And @Stock_cd2))
)
And (
(@GROUPOD_CD Is Null)
Or((@GROUPOD_CD = @GROUPOD_CD) And (GROUPOD_CD=@GROUPOD_CD))
Or((@GROUPOD_CD <>@GROUPOD_CD2) And (GROUPOD_CD Between @GROUPOD_CD And @GROUPOD_CD2))
)
And (
(@Od_Cd Is Null)
Or((@Od_Cd = @Od_Cd2) And (Od_Cd=@Od_Cd))
Or((@Od_Cd <>@Od_Cd2) And (Od_Cd Between @Od_Cd And @Od_Cd2))
)
And (
(Not A.Flag In(2,4,12,17)) OR ((Flag=2 AND Vazeiat=1) OR(Flag=4 AND Id_Source Is Null) OR (Flag=12 AND Vazeiat=1) OR(Flag=17 AND Id_Source Is Null))
)
GROUP BY A.Od_Cd, A.Od_Nm,A.Unit_Nm,A.Stock_cd,A.Stock_Nm,Sefaresh,a .End_Date,a.Bach_No
) L

tooraj_azizi_1035
چهارشنبه 30 اردیبهشت 1394, 17:36 عصر
(First / (Second * 1.0)) * 100