taknavaz123
سه شنبه 01 اردیبهشت 1394, 09:26 صبح
با سلام خدمت دوستان
یه کمک نیاز داشتم.
در کد زیر دوتا فیلد end_date و start_date هست که بعنوات تاریخ تولید و تاریخ انقضای محصول هستند.
حالا میخواستم این 2 تا تاریخ (شمسی) رو از هم کم کنم و در یک فیلد دیگر به نام طول عمر نمایش بدم.ولی نمیدونم چطوری و کجای این کد باید بنویسمش
Declare @Fact_Date char(8) --param Tarikh ;=;1
Declare @Stock_Cd TinyInt ,@Stock_Cd2 TinyInt --param ANbar;between
Declare @GROUPOD_CD Smallint,@GROUPOD_CD2 Smallint -- param goroh;between
Declare @OD_CD Varchar(17),@OD_CD2 Varchar(17) --param kala ;between
Declare @ACC_YEAR Int --param sal;=;1
/* begin user parameter value */
Set @acc_year = 1394
/* end of user parameter value */
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,start_date
,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.start_date
,sum(Io*Quantity) sum_io_quantity
,Sum(Io*Prc_Kol) sum_io_quantity_un_prc
,Sum(Io*Quantity*unitVazn)/1000 Vazn_kol
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 (
(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.start_date
) L
Order By L.Stock_cd,L.Od_Cd
یه کمک نیاز داشتم.
در کد زیر دوتا فیلد end_date و start_date هست که بعنوات تاریخ تولید و تاریخ انقضای محصول هستند.
حالا میخواستم این 2 تا تاریخ (شمسی) رو از هم کم کنم و در یک فیلد دیگر به نام طول عمر نمایش بدم.ولی نمیدونم چطوری و کجای این کد باید بنویسمش
Declare @Fact_Date char(8) --param Tarikh ;=;1
Declare @Stock_Cd TinyInt ,@Stock_Cd2 TinyInt --param ANbar;between
Declare @GROUPOD_CD Smallint,@GROUPOD_CD2 Smallint -- param goroh;between
Declare @OD_CD Varchar(17),@OD_CD2 Varchar(17) --param kala ;between
Declare @ACC_YEAR Int --param sal;=;1
/* begin user parameter value */
Set @acc_year = 1394
/* end of user parameter value */
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,start_date
,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.start_date
,sum(Io*Quantity) sum_io_quantity
,Sum(Io*Prc_Kol) sum_io_quantity_un_prc
,Sum(Io*Quantity*unitVazn)/1000 Vazn_kol
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 (
(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.start_date
) L
Order By L.Stock_cd,L.Od_Cd