PE51, add' Year to Date' amount as an additional column on pay slip
Hi everyone, I am new to PE51 pay slip forms.
PE51, I tested standard form KF01 and able to see payslip.
But how to add YTD amount as an additional column to wage type?
Thank you for your help,
Karen
Please search this forum as there are many threads relating to the configuration of the Remuneration Statement (or Pay Slip).
There may be additional information in the Wiki, and I know that there is some very explicit documentation on the web.
But to get you started, always copy SAP's Standard (whether it is a Form, a Schema, a Program, etc...) into a Z version, and make your changes to the Z version. In this case it would be to form ZF01.
In the Change Window section, find your WT among the different groups, and make sure that it is pulling information from tables RT, RTS and CRT.
Similar Messages
-
Getting Turnover Year to Date amount in Sales Order
Hi Experts
I would like to be able to have a UDF on Sales Order which shows Sales the Turnover Year to Date for the BP.
I have created a UDF which is formatted as an amount field and a formatted search with the following syntax. it is essentially a calculation of the total of all invoices minus credit notes:
(select (select sum(t1.doctotal) - sum(t1.vatsum) from oinv t1 where (t1.cardcode = t0.cardcode) AND ((T1.[docdate]>='01.01.09') AND (T1.[docdate]<=GETDATE())))
- (select sum(t2.doctotal) - sum(t2.vatsum) from orin t2 where (t2.cardcode = t0.cardcode) AND ((T2.[docdate]>='01.01.09') AND (T2.[docdate]<=GETDATE()))))
from OCRD T0 INNER JOIN OINV T1 ON T0.CardCode = T1.CardCode INNER JOIN ORIN T2 ON T0.CardCode = T2.CardCode
WHERE T0.[CardCode] = $[$4.1.0]
it is working for me unfortunately and I hope one of the experts can tell me where I am going wrong?
Thanks
JonHi
Try this,
DECLARE @a Numeric(19,6)
DECLARE @b Numeric(19,6)
Set @a = Select (SUM(T1.DocTotal) - SUM(T1.VATSUM))
FROM OCRD T0
INNER JOIN OINV T1 ON T0.CardCode = T1.CardCode
WHERE T0.CardCode = $[$4.0.0]
AND
T1.DocDate '01/01/2009' AND T1.DocDate<= 'GETDATE()'
Set @B = Select SUM(T2.DocTotal) - SUM(T2.VATSUM)
FROM OCRD T0
INNER JOIN OINV T1 ON T0.CardCode = T1.CardCode
INNER JOIN ORIN T2 ON T0.CardCode = T2.CardCode
WHERE T0.CardCode = $[$4.0.0]
AND
T2.DocDate>= '01/01/2009' AND T2.DocDate<= 'GETDATE()'
SELECT (@a-@b)
Regards,
Madhan. -
Current period/Year to Date Amount calculation
Hi,
I would like to create a query in Bex Query Designer.
Requirements:
If I enter current period and Fiscal year then the report should appear total of period 1 to current period.
Example:
Period: 4
Year: 2008
For Cost Elements in Controlling.
The report should be like
|Cost Elements | Amount of(P1P2P3+P4)|
I can keep select variable as filter to enter current period, But how can I calculate the total amount from period 1 to current period.
Any help would be appreciated.
Thanks,
Aparna.
Edited by: Aparna Pyeddu on Jan 29, 2009 9:45 PM
Edited by: Aparna Pyeddu on Jan 29, 2009 9:46 PMHi,
To get the required output do like this...
1. Create a Customet Exit Variable on 0FISCPER. (Single, Mandotory, Uncheck Ready for InPut):'ZFY_CURR'
2. Create a Customet Exit Variable on 0FISCPER. (Single, Mandotory, Uncheck Ready for InPut):'ZFY_CUR1'
3.In Free Chars drag and Drop 0FISCPER and the restrict with Variable '0P_FPER'.
4.Create New Selection in Columns and the Drag your Key figure and then Drag 0FISCPER and then restrict with (Select Value Range) []ZFY_CURR; ZFY_CUR1.
5. Execute the report then you can get the desired output.
The below Code is for From Period
WHEN 'ZFY_CURR'.
Data: ZSF(4) type C,
ZSF1(3) type C,
ZSFY(7) type C,
ZSFH(7) type C.
ZSF1 = '001'.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = '0P_FPER'.
IF sy-subrc = 0.
CLEAR: l_s_range.
ZSF = loc_var_range-LOW+0(4).
ZSFH = loc_var_range-LOW.
CONCATENATE ZSF ZSF1 INTO ZSFY.
l_s_range-low = ZSFY.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
ENDIF.
ENDLOOP.
The below Code is for To Period
WHEN 'ZFY_CUR1'.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = '0P_FPER'.
IF sy-subrc = 0.
CLEAR: l_s_range.
ZSFH = loc_var_range-LOW.
l_s_range-low = ZSFH.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
ENDIF.
ENDLOOP.
Thanks
Reddy
Edited by: Surendra Reddy on Jan 31, 2009 2:46 PM -
How to add years to date-field ?
hi,
i have a field z_date type d.
now i have to add 25 years to it, and 35 years, and so on.........
how to handle this ?
reg, MartinHi,
Above posts would not check for leap year dates... so while calculating it might give wrong dates...
use the FM given below to calculate date with year's...
data w_date type sy-datum.
w_date = sy-datum.
CALL FUNCTION 'J_1H_CAL_DATE_IN_INTERVAL'
EXPORTING
date = w_date
days = 0
months = 0
SIGNUM = '+'
years = 30
IMPORTING
CALC_DATE = w_date.
Regards,
Siddarth -
Hi,
I have to get the Year-to-date amount on an ALV output for a GL account. Is there any FM to do it?... Currently Iam just getting the output for the period that I put in selection screen.
Thank you,
SB.Hi
You have to use the filed symbols for this purpose.
see the sample code
report zfgldr0010
line-size 122
line-count 60
no standard page heading
message-id zndc.
Database Tables
tables: bsis, " Accounting: Secondary Index for G/L Accounts
ska1, " GL Account Master
t001, " Company Codes
csks, " Cost Centers Master
setnode, " Cost Center Group Hierarchy
setleaf. " Cost Center Group Hierarchy
Declaration of Internal Tables
Internal Table to fetch the Opex Budget & Capex Actual Data
data: begin of it_bud_tab occurs 0,
lednr like cosp-lednr, " Ledger No
objnr like cosp-objnr, " Object No
gjahr like cosp-gjahr, " Fiscal Year
wrttp like cosp-wrttp, " Actuals
versn like cosp-versn, " Version
twaer like cosp-twaer, " Currency
perbl like cosp-perbl, " Period Block
kstar like cosp-kstar, " Cost Element/GL A/C No
wog001 like cosp-wog001, " Total Value
wog002 like cosp-wog002, " Total Value
wog003 like cosp-wog001, " Total Value
wog004 like cosp-wog002, " Total Value
wog005 like cosp-wog001, " Total Value
wog006 like cosp-wog002, " Total Value
wog007 like cosp-wog001, " Total Value
wog008 like cosp-wog002, " Total Value
wog009 like cosp-wog001, " Total Value
wog010 like cosp-wog002, " Total Value
wog011 like cosp-wog001, " Total Value
wog012 like cosp-wog002, " Total Value
end of it_bud_tab.
Internal Table to fetch the Settlement Costs(Opex-Actual)
data: begin of it_set_tab occurs 0,
kokrs like coep-kokrs, " Controlling Area
belnr like coep-belnr, " Acc Document
buzei like coep-buzei, " Line Item
perio like coep-perio, " Period Block
wkgbtr like coep-wkgbtr, " Value in CO Curr
lednr like coep-lednr, " Ledger No
objnr like coep-objnr, " Object No
gjahr like coep-gjahr, " Fiscal Year
wrttp like coep-wrttp, " Actuals
versn like coep-versn, " Version
kstar like coep-kstar, " Cost Element
beknz like coep-beknz, " Dr/Cr Indicator
parob1 like coep-parob1, " Partner Object
end of it_set_tab.
Internal Table to fetch the COBRB data(Settlement rules)
data: begin of cobrb_tab occurs 0,
objnr like cobrb-objnr, " Object No
rec_objnr1 like cobrb-rec_objnr1, " Ref Object No
bureg like cobrb-bureg, " Dostribution Rule
lfdnr like cobrb-lfdnr, " Sequence No
perbz like cobrb-perbz, " Settlement Rule
konty like cobrb-konty, " Acct Assign Category
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
end of cobrb_tab.
Internal Table to Settlement Actual Costs for Cost center & GL
data: begin of set_act_tab occurs 0,
kostl like csks-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
amt_atd like bsis-dmbtr, " YTD Actual
end of set_act_tab.
Internal Table to Settlement Actual Costs for Cost center
data: begin of set1_act_tab occurs 0,
kostl like csks-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
amt_atd like bsis-dmbtr, " YTD Actual
end of set1_act_tab.
Internal Table to Capex Budget Figures
data: begin of cap_tab occurs 0,
belnr like coej-belnr, " Accounting Doc No
buzei like coej-buzei, " Line Item No
objnr like coej-objnr, " Object No
wrttp like bpej-wrttp, " Value Type
gjahr like coej-gjahr, " Fiscal Year
wtjhr like bpej-wtjhr, " budget Value
end of cap_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of cap1_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
hkont(10) type n, " GL Account No
amt_fy like coej-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of cap1_tab.
Internal Table to Sum up the Budget Figures(Full Year and YTD)
data: begin of cap2_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
amt_fy like coej-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of cap2_tab.
Internal Table to Segragate the CAPEX YTD data(GL Wise)
data: begin of cap_ytd_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
kstar like coej-kstar, " Cost Element
amt_ytd like coej-wkf001, " Ytd Amount
end of cap_ytd_tab.
Internal Table to Segragate the CAPEX YTD data(CC Wise)
data: begin of cap1_ytd_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
amt_ytd like coej-wkf001, " Ytd Amount
end of cap1_ytd_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of it_ytd_tab occurs 0,
gjahr like cosp-gjahr, " Fiscal Year
kostl like bsis-kostl, " Cost Center
kstar like cosp-kstar, " Cost Element
amt_fy like cosp-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of it_ytd_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of it_ytd1_tab occurs 0,
gjahr like cosp-gjahr, " Fiscal Year
kostl like bsis-kostl, " Cost Center
amt_fy like cosp-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of it_ytd1_tab.
Internal Table to fetch the Actual YTD Figures
data: begin of it_act_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
hkont like bsis-hkont, " GL Account No
gjahr like bsis-gjahr, " Fiscal Year
belnr like bsis-belnr, " Accounting Doc No
budat like bsis-budat, " Posting Date
waers like bsis-waers, " Currency
kostl like bsis-kostl, " Cost Center
shkzg like bsis-shkzg, " Dr/Cr Indicator
dmbtr like bsis-dmbtr, " Doc Amount
end of it_act_tab.
Internal Table to fetch the Actual YTD Figures( GL-SUM)
data: begin of act1_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
gjahr like bsis-gjahr, " Fiscal Year
dmbtr like bsis-dmbtr, " Doc Amount
end of act1_tab.
Internal Table to fetch the Actual YTD Figures( CC-SUM)
data: begin of act2_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
gjahr like bsis-gjahr, " Fiscal Year
dmbtr like bsis-dmbtr, " Doc Amount
end of act2_tab.
Internal Table to fetch the WBS Data
data: begin of wbs_tab occurs 0,
pspnr like prps-pspnr, " WBS Element
posid like prps-posid, " WBS Structure Element
objnr like prps-objnr, " Object No
psphi like prps-psphi, " Project ID
pbukr like prps-pbukr, " Company Code
pkokr like prps-pkokr, " Controlling Area
fkstl like prps-fkstl, " Cost center
end of wbs_tab.
Internal Table to get Capex Actual from Networks
data: begin of net_tab occurs 0,
aufnr like afko-aufnr, " Order No
ftrmi like afko-ftrmi, " Release Date
pronr like afko-pronr, " Project No
aufpl like afvc-aufpl, " Routing No
aplzl like afvc-aplzl, " Counter No
objnr like afvc-objnr, " Object No
projn like afvc-projn, " WBS Element
end of net_tab.
Internal Table to get Capex Actual from Orders
data: begin of ord_tab occurs 0,
aufnr like aufk-aufnr, " Order No
aedat like aufk-aedat, " Order Date
kostl like aufk-kostl, " Cost center
objnr like aufk-objnr, " Object No
pspel like aufk-pspel, " WBS Element
end of ord_tab.
Internal Table to fetch the Capex Actual Data
data: it_cap_tab like kv02s occurs 0 with header line.
Internal Table to store the output of function-G_SET_TREE_IMPORT.
data : ccenter_group_tab like sethier occurs 0 with header line.
Internal Table to store the output of function-G_SET_TREE_IMPORT.
data : cost_center_tab like setvalues occurs 0 with header line.
Declaration of Variables
data: v_f_oper_amnt like bsis-wrbtr, " Operations F Year Budget
v_f_depr_amnt like bsis-wrbtr, " Depreciation F Year Budget
v_f_main_amnt like bsis-wrbtr, " Maintenance F Year Budget
v_f_capx_amnt like bsis-wrbtr, " Capex F Year Budget
v_b_oper_amnt like bsis-wrbtr, " Operations Budget YTD
v_b_depr_amnt like bsis-wrbtr, " Depreciation Budget YTD
v_b_main_amnt like bsis-wrbtr, " Maintenance Budget YTD
v_b_capx_amnt like bsis-wrbtr, " Capex Budget YTD
v_a_oper_amnt like bsis-wrbtr, " Operations Actual YTD
v_a_depr_amnt like bsis-wrbtr, " Depreciation Actual YTD
v_a_main_amnt like bsis-wrbtr, " Maintenance Actual YTD
v_a_capx_amnt like bsis-wrbtr, " Capex Actual YTD
v_v_oper_amnt type i, " Operations Variance
v_v_depr_amnt type i, " Depreciation Variance
v_v_main_amnt type i, " Maintenance Variance
v_v_capx_amnt type i, " Capex Variance
v_t_f_amnt type i, " Total F Year Budget
v_t_b_amnt type i, " Total Budget YTD
v_t_a_amnt type i, " Total Actual YTD
v_t_v_amnt type i, " Total Variance
v_gt_f_amnt type i, " GTotal F Year Budget
v_gt_b_amnt type i, " GTotal Budget YTD
v_gt_a_amnt type i, " GTotal Actual YTD
v_gt_v_amnt type i, " GTotal Variance
v_per_oper type i, " % YTD Operations
v_per_depr type i, " % YTD Depreciation
v_per_main type i, " % YTD Maintenance
v_per_capx type i, " % YTD Capex
v_per_tot type i, " % YTD Total
v_per_gtot type i, " % YTD G Total
v_kstar(4) type n, " Cost element
v_yr(2) type c, " Year
v_year(4) type c, " Year
v_lines type i, " Number
v_str(10) type c, " String
v_gl(4) type n, " GL element
v_gl1(10) type n, " GL Account Code
v_mon(2) type n, " Month
v_month(2) type n, " Month
v_day(2) type n, " Day
v_date like sy-datum, " Start Date in Year
v_setid like sethier-setid, " To store Identification of a set
v_subrc like sy-subrc, " Return code
v_settid like rgsbs-setnr. " Identification of a set
data: v_f_oper_amnt1 type i, " Operations F Year Budget
v_f_depr_amnt1 type i, " Depreciation F Year Budget
v_f_main_amnt1 type i, " Maintenance F Year Budget
v_f_capx_amnt1 type i, " Capex F Year Budget
v_b_oper_amnt1 type i, " Operations Budget YTD
v_b_depr_amnt1 type i, " Depreciation Budget YTD
v_b_main_amnt1 type i, " Maintenance Budget YTD
v_b_capx_amnt1 type i, " Capex Budget YTD
v_a_oper_amnt1 type i, " Operations Actual YTD
v_a_depr_amnt1 type i, " Depreciation Actual YTD
v_a_main_amnt1 type i, " Maintenance Actual YTD
v_a_capx_amnt1 type i. " Capex Actual YTD
Declaration of Constants
constants : c_i type c value 'I', " Sign
c_x type c value 'X', " Sign
c_d type c value 'D', " Type
c_h type c value 'H', " Credit Ind
c_s type c value 'S', " Type
c_o type c value 'O', " Type
c_a type c value 'A', " Type
c_01(2) type n value '01', " Month
c_opt1(2) type c value 'EQ', " Option
c_opt2(2) type c value 'BT', " Option
c_dot(3) type c value '...', " Dots
c_or(2) type c value 'OR', " Type
c_ks(2) type c value 'KS', " Type
c_mon(2) type n value '01', " Month
c_ndc like setnode-setname value 'NDC', " CC Group
c_glno like coej-versn value '000', " For GL No
c_versn1 like coej-versn value '100', " Value
c_kokrs like coej-kokrs value '1000', " Controlling Area
c_wrttp like coej-wrttp value '01', " Value Type
c_wrttp1 like coej-wrttp value '41', " Value Type
c_wrttp2 like coej-wrttp value '04', " Value Type
c_versn like coej-versn value '000', " Version
c_kbud like bpej-vorga value 'KBUD', " Activity
c_kbfr like bpej-vorga value 'KBFR', " Activity
c_kbn0 like bpej-vorga value 'KBN0', " Activity
c_it_bud_tab_wog0(15) value 'IT_BUD_TAB-WOG0',
c_prart like prps-prart value 'CA', " Project Type
c_psin like afvc-steus value 'PSIN', " Control Key
c_lednr like cosp-lednr value '00', " Ledger
c_lednr1 like bpej-lednr value '0002', " Ledger
c_class1 like setnode-setclass value '0101', " Class
c_class2 like setnode-subclass value '1000', " Subclass
c_thous type i value '1000', " Number
c_settab like rgsbs-table value 'CCSS', " Table for set
c_cctfld like t800s-feld value 'KOSTL'. " Field name
Declaration of Ranges
ranges: rn_kostl for csks-kostl. " Cost Centers
Selection Screen
selection-screen begin of block b1 with frame title text-001.
parameters : p_bukrs like t001-bukrs
default '1000'," Company Code
p_gjahr like bsis-gjahr
default sy-datum+0(4), " Fiscal Year
p_date like bsis-budat obligatory. " Date
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-021.
parameters : p_cgrup like setnode-setname. " Cost Center Group
select-options: s_kostl for csks-kostl. " Cost Center
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-029.
select-options :
s_opers for ska1-saknr obligatory, " Operns & Support GL A/C
s_deprc for ska1-saknr obligatory, " Depreciation GL A/C
s_mmain for ska1-saknr obligatory, " Major Maintenance GL A/C
s_capex for ska1-saknr obligatory. " Capital Expenditure GL A/C
selection-screen end of block b3.
Initialization
initialization.
At selection-screen
at selection-screen.
Validate the Selection Screen fields
perform validate_screen.
Value request for Cost Center Group.
at selection-screen on value-request for p_cgrup .
Get the F4 Help for Cost center Group
perform set_auswaehlen(sapfk00b) using c_settab c_cctfld
changing p_cgrup v_subrc
v_settid.
Start-of-Selection
start-of-selection.
Clear all the Variables in the Program
perform clear_var.
Get the Cost Centers from Cost Center Group.
perform get_cc_values.
Get the Budget data from database Table COSP
perform get_budget_data.
Get the Settlement Costs data from database Tables COBRB,COSP
perform get_cobrb_data.
Get the Actual YTD data from database Table BSIS
perform get_act_ytd_data.
Get the WBS Element Data
perform get_wbs_data.
Get the Networks and Activities for the WBS
perform get_net_ord_data.
Get the WBS Budget data from database Tables BPEJ
perform get_cap_budget_data.
Get the WBS Actual YTD data for WBS
perform get_cap_act_ytd_data.
Top-of-page
top-of-page.
Write the Report and Column Headings
perform top_of_page.
End-of-Selection
end-of-selection.
D-splay the Output Report.
perform display_report.
Form-Routines
*& Form validate_screen
Validation of selection Screen fields
form validate_screen.
Validation of Company Code
clear t001.
if not p_bukrs is initial.
select single bukrs
into t001-bukrs
from t001
where bukrs eq p_bukrs.
if sy-subrc <> 0.
message e999 with 'Incorrect Company Code'(033).
endif.
endif.
Validation of GL Account Code( P & L Operations )
clear ska1.
if not s_opers[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_opers
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Operations and Support Cost'(034).
endif.
endif.
Validation of GL Account Code( P & L Depreciation)
clear ska1.
if not s_deprc[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_deprc
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Depreciation'(035).
endif.
endif.
Validation of GL Account Code( P & L Maintenance)
clear ska1.
if not s_mmain[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_mmain
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Major Maintenance'(036).
endif.
endif.
Validation of GL Account Code (Balance Sheet-Capex)
clear ska1.
if not s_capex[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_capex
and ktopl = c_kokrs
and xbilk = c_x.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Capital Expenditures'(037).
endif.
endif.
Validation of Cost Center Group
if not p_cgrup is initial .
clear setleaf-setname.
select setname up to 1 rows
from setleaf
into setleaf-setname
where setname eq p_cgrup and
setclass = c_class1 and
subclass = c_class2.
endselect.
if sy-subrc <> 0.
clear setnode-setname.
select setname up to 1 rows
from setnode
into setnode-setname
where setname eq p_cgrup and
setclass = c_class1 and
subclass = c_class2.
endselect.
if sy-subrc <> 0.
message e999 with
'Enter Correct Cost Center Group'(038).
endif.
endif.
endif.
Validation of Cost Center
clear csks.
if not s_kostl[] is initial.
select kostl up to 1 rows
into csks-kostl
from csks
where kostl in s_kostl
and kokrs = c_kokrs.
endselect.
if sy-subrc <> 0.
message e999 with
'Enter Correct Cost Center Code'(039).
endif.
endif.
Enter either Cost Center Group or Values
if not p_cgrup is initial and not s_kostl[] is initial.
message e999 with
'Enter either Cost Center Group or Values'(040).
endif.
Validation of Date
if p_date+0(4) ne p_gjahr.
message e999(zndc) with
'Please Enter the date in same Fiscal Year'(020).
endif.
To enter only last day of the month
clear: v_month, v_day, v_year.
v_month = p_date+4(2).
v_day = p_date+6(2).
v_year = p_date+0(4).
if ( v_month = '01' or v_month = '03' or v_month = '05' or
v_month = '07' or v_month = '08' or v_month = '10' or
v_month = '12' ).
if v_day ne '31'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
elseif ( v_month = '04' or v_month = '06' or v_month = '09' or
v_month = '11' ).
if v_day ne '30'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
elseif v_month = '02'.
if v_year eq '2004' or v_year eq '2008'.
if v_day ne '29'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
else.
if v_day ne '28'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
endif.
endif.
endform. " validate_screen
*& Form get_cc_values
Get the Cost Centers from Cost Center Group
form get_cc_values.
Populate the Cost Centers from Cost Center Group
if s_kostl[] is initial.
if p_cgrup is initial.
p_cgrup = c_ndc.
else.
p_cgrup = p_cgrup.
endif.
Concatenating Setnode table setclass,subclass fields and
Cost Center Group
concatenate c_class1 c_class2 p_cgrup
into v_setid.
Calling function module to get SET_HIERARCHY & SET_VALUES
perform frm_g_set_tree_import tables ccenter_group_tab[]
cost_center_tab[]
using v_setid.
loop at cost_center_tab.
rn_kostl-low = cost_center_tab-from.
rn_kostl-high = cost_center_tab-to.
rn_kostl-sign = c_i.
if rn_kostl-low = rn_kostl-high.
rn_kostl-option = c_opt1.
else.
rn_kostl-option = c_opt2.
endif.
append rn_kostl.
endloop.
clear v_setid.
endif.
else.
rn_kostl[] = s_kostl[].
endif.
endform. "get_cc_values
*& FORM FRM_G_SET_TREE_IMPORT
Subroutine to call the function G_SET_TREE_IMPORT.
form frm_g_set_tree_import
tables ccenter_group_tab structure sethier
cost_center_tab structure setvalues
using p_v_setid.
call function 'G_SET_TREE_IMPORT'
exporting
CLIENT = SY-MANDT
FIELDNAME = ' '
LANGU = SY-LANGU
NO_DESCRIPTIONS = ' '
NO_RW_INFO = ' '
setid = p_v_setid
TABNAME = ' '
NO_VARIABLE_REPLACEMENT = ' '
ROOT_HEADER_ONLY = ' '
NO_TABLE_BUFFERING = ' '
MAX_HIER_LEVEL = 99
DATE_FROM =
DATE_TO =
IMPORTING
SET_NOT_TRANSPARENT =
tables
set_hierarchy = ccenter_group_tab
set_values = cost_center_tab
EXCEPTIONS
SET_NOT_FOUND = 1
ILLEGAL_FIELD_REPLACEMENT = 2
ILLEGAL_TABLE_REPLACEMENT = 3
OTHERS = 4
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. "frm_g_set_tree_import
*& Form clear_var
Clear all the Variables in the program
form clear_var.
Clear/Initialize all the Variables
clear: v_f_oper_amnt1, v_f_depr_amnt1, v_f_main_amnt1,
v_f_capx_amnt1, v_b_oper_amnt1, v_b_depr_amnt1,
v_b_main_amnt1, v_b_capx_amnt1, v_a_oper_amnt1,
v_a_depr_amnt1, v_a_main_amnt1, v_a_capx_amnt1,
v_f_oper_amnt, v_f_depr_amnt, v_f_main_amnt,
v_f_capx_amnt, v_b_oper_amnt, v_b_depr_amnt,
v_b_main_amnt, v_b_capx_amnt, v_a_oper_amnt,
v_a_depr_amnt, v_a_main_amnt, v_a_capx_amnt,
v_v_oper_amnt, v_v_depr_amnt, v_v_main_amnt,
v_v_capx_amnt, v_t_f_amnt, v_t_b_amnt,
v_t_a_amnt, v_t_v_amnt, v_gt_f_amnt,
v_gt_b_amnt,v_gt_a_amnt,v_gt_v_amnt,
v_per_oper, v_per_depr, v_per_main,
v_per_capx, v_per_tot, v_per_gtot.
endform. "clear_var
*& Form get_budget_data
Get the Budget Data from Database Table COSP
form get_budget_data.
Form Local data
data: l_period(2) type n,
l_name(35) type c,
l_monat type i .
l_monat = p_date+4(2).
Field Symbols
field-symbols <fs>.
clear it_bud_tab.
refresh it_bud_tab.
select lednr " Ledger No
objnr " Object No
gjahr " Fiscal Year
wrttp " Actuals
versn " Version
twaer " Currency
perbl " Period Block
kstar " Cost Element/GL A/C No
wog001 " Total Value
wog002 " Total Value
wog003 " Total Value
wog004 " Total Value
wog005 " Total Value
wog006 " Total Value
wog007 " Total Value
wog008 " Total Value
wog009 " Total Value
wog010 " Total Value
wog011 " Total Value
wog012 " Total Value
into table it_bud_tab
from cosp
where lednr = c_lednr and
gjahr = p_gjahr and
wrttp = c_wrttp and
versn = c_versn and
beknz in (c_d,c_s).
if sy-subrc = 0.
Segragate the Budget Figures(Full Year and YTD)
loop at it_bud_tab.
if it_bud_tab-objnr+0(2) eq c_ks.
move-corresponding it_bud_tab to it_ytd_tab.
it_ytd_tab-kostl = it_bud_tab-objnr+6(10).
it_ytd_tab-amt_fy = it_bud_tab-wog001 + it_bud_tab-wog002 +
it_bud_tab-wog003 + it_bud_tab-wog004 +
it_bud_tab-wog005 + it_bud_tab-wog006 +
it_bud_tab-wog007 + it_bud_tab-wog008 +
it_bud_tab-wog009 + it_bud_tab-wog010 +
it_bud_tab-wog011 + it_bud_tab-wog012.
Get the YTD Budget using Field Symbols
do l_monat times.
l_period = sy-index.
concatenate c_it_bud_tab_wog0 l_period
into l_name.
assign (l_name) to <fs>.
it_ytd_tab-amt_ytd = it_ytd_tab-amt_ytd +
<fs>.
enddo.
collect it_ytd_tab.
clear it_ytd_tab.
endif.
endloop.
sort it_ytd_tab by gjahr kostl kstar.
Cost Center wise Sum Up of Costs
loop at it_ytd_tab.
at end of kostl.
sum.
move-corresponding it_ytd_tab to it_ytd1_tab.
append it_ytd1_tab.
endat.
clear it_ytd1_tab.
endloop.
sort it_ytd1_tab by gjahr kostl.
Segragate the Budget Figures into different Accounts/Cost elements
loop at it_ytd_tab.
if it_ytd_tab-kostl in rn_kostl.
Budget Full Year and YTD (Operations & Support Cost)
if not s_opers[] is initial.
if it_ytd_tab-kstar in s_opers.
v_f_oper_amnt = v_f_oper_amnt + it_ytd_tab-amt_fy.
v_b_oper_amnt = v_b_oper_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
Budget Full Year and YTD (Depreciation)
if not s_deprc[] is initial.
if it_ytd_tab-kstar in s_deprc.
v_f_depr_amnt = v_f_depr_amnt + it_ytd_tab-amt_fy.
v_b_depr_amnt = v_b_depr_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
Budget Full Year and YTD (Major Maintainance)
if not s_mmain[] is initial.
if it_ytd_tab-kstar in s_mmain.
v_f_main_amnt = v_f_main_amnt + it_ytd_tab-amt_fy.
v_b_main_amnt = v_b_main_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
endif.
endloop.
Convert the Amount fields to nearest Thousand
v_f_oper_amnt1 = v_f_oper_amnt / c_thous .
v_f_depr_amnt1 = v_f_depr_amnt / c_thous .
v_f_main_amnt1 = v_f_main_amnt / c_thous .
v_b_oper_amnt1 = v_b_oper_amnt / c_thous .
v_b_depr_amnt1 = v_b_depr_amnt / c_thous .
v_b_main_amnt1 = v_b_main_amnt / c_thous .
endif.
endform. "get_budget_data
*& Form get_cobrb_data
Get the Settlement Data from Database Table COBRB
form get_cobrb_data.
clear cobrb_tab.
refresh cobrb_tab.
select objnr " Object No
rec_objnr1 " Ref Object No
bureg " Dostribution Rule
lfdnr " Sequence No
perbz " Settlement Rule
konty " Acct Assign Category
bukrs " Company Code
kostl " Cost Center
into table cobrb_tab
from cobrb
where kostl in rn_kostl.
sort cobrb_tab by objnr rec_objnr1.
delete adjacent duplicates from cobrb_tab comparing objnr.
Get the Settlement Costs from COEP Table
clear it_set_tab.
refresh it_set_tab.
if not cobrb_tab[] is initial.
select kokrs " Controlling Area
belnr " Acc Document
buzei " Line Item
perio " Period Block
wkgbtr " Value in CO Curr
lednr " Ledger No
objnr " Object No
gjahr " Fiscal Year
wrttp " Actuals
versn " Version
kstar " Cost Element
beknz " Dr/Cr Indicator
parob1 " Partner Object
into table it_set_tab
from coep
for all entries in cobrb_tab
where lednr = c_lednr and
wrttp = c_wrttp2 and
versn = c_versn and
gjahr = p_gjahr and
objnr = cobrb_tab-objnr and
parob1 = cobrb_tab-rec_objnr1 and
beknz in (c_o, c_a).
endif.
Settlement Actual Costs
loop at cobrb_tab.
if cobrb_tab-objnr+0(2) eq c_or.
loop at it_set_tab where objnr = cobrb_tab-objnr
and parob1 = cobrb_tab-rec_objnr1.
set_act_tab-kostl = cobrb_tab-kostl.
set_act_tab-hkont = it_set_tab-kstar.
Get the Actual Settlement Costs YTD Amount
if it_set_tab-perio between c_mon and v_month.
set_act_tab-amt_atd = set_act_tab-amt_atd +
abs( it_set_tab-wkgbtr ).
endif.
collect set_act_tab.
clear set_act_tab.
endloop.
endif.
endloop.
sort set_act_tab by kostl hkont.
Sum Up the Settlement Costs-CC wise
loop at set_act_tab.
at end of kostl.
read table set_act_tab index sy-tabix.
sum.
move-corresponding set_act_tab to set1_act_tab.
append set1_act_tab.
endat.
clear set1_act_tab.
endloop.
sort set1_act_tab by kostl.
delete set1_act_tab where amt_atd = 0.
endform. "get_cobrb_data
*& Form get_act_ytd_data
Get the Actual YTD Data from Database Table BSIS
form get_act_ytd_data.
clear it_act_tab.
refresh it_act_tab.
select
bukrs " Company Code
hkont " GL Account No
gjahr " Fiscal Year
belnr " Accounting Doc No
budat " Posting Date
waers " Currency
kostl " Cost Center
shkzg " Dr/Cr Indicator
dmbtr " Doc Amount
into table it_act_tab
from bsis
where bukrs eq p_bukrs and
gjahr eq p_gjahr and
budat le p_date and
kostl in rn_kostl.
if sy-subrc = 0.
sort it_act_tab by bukrs hkont.
loop at it_act_tab.
if it_act_tab-shkzg = c_h.
it_act_tab-dmbtr = it_act_tab-dmbtr * -1.
endif.
move-corresponding it_act_tab to act1_tab.
collect act1_tab.
clear act1_tab.
endloop.
sort act1_tab by bukrs kostl hkont.
endif.
Cost Center wise Sum Up of Costs
loop at act1_tab.
at end of kostl.
sum.
move-corresponding act1_tab to act2_tab.
append act2_tab.
endat.
clear act2_tab.
endloop.
sort act2_tab by gjahr kostl.
Seperate the different Actual YTD Expenditures
loop at act1_tab.
Actual YTD (Operations & Support Cost)
if not s_opers[] is initial.
if act1_tab-hkont in s_opers.
v_a_oper_amnt = v_a_oper_amnt + act1_tab-dmbtr.
endif.
endif.
Actual YTD (Depreciation)
if not s_deprc[] is initial.
if act1_tab-hkont in s_deprc.
v_a_depr_amnt = v_a_depr_amnt + act1_tab-dmbtr.
endif.
endif.
Actual YTD (Major Maintainance)
if not s_mmain[] is initial.
if act1_tab-hkont in s_mmain.
v_a_main_amnt = v_a_main_amnt + act1_tab-dmbtr.
endif.
endif.
endloop.
Opex Settlement Actual Costs
loop at set_act_tab.
Actual YTD (Operations & Support Cost)
if not s_opers[] is initial.
if set_act_tab-hkont in s_opers.
v_a_oper_amnt = v_a_oper_amnt + set_act_tab-amt_atd.
endif.
endif.
Actual YTD (Depreciation)
if not s_deprc[] is initial.
if set_act_tab-hkont in s_deprc.
v_a_depr_amnt = v_a_depr_amnt + set_act_tab-amt_atd.
endif.
endif.
Actual YTD (Major Maintainance)
if not s_mmain[] is initial.
if set_act_tab-hkont in s_mmain.
v_a_main_amnt = v_a_main_amnt + set_act_tab-amt_atd.
endif.
endif.
endloop.
Convert Amount Fields to nearest thousands
v_a_oper_amnt1 = v_a_oper_amnt / c_thous .
v_a_depr_amnt1 = v_a_depr_amnt / c_thous .
v_a_main_amnt1 = v_a_main_amnt / c_thous .
endform. " get_act_ytd_data
*& Form get_wbs_data
Get the WBS Element Data
form get_wbs_data.
clear wbs_tab.
refresh wbs_tab.
select pspnr " WBS Element
posid " WBS Structure Element
objnr " Object No
psphi " Project ID
pbukr " Company Code
pkokr " Controlling Area
fkstl " Cost Center
into table wbs_tab
from prps
where pbukr = p_bukrs and
pkokr = c_kokrs and
fkstl in rn_kostl and
prart = c_prart.
Consider only the Same Year WBS Elements Data
loop at wbs_tab.
v_yr = wbs_tab-posid+5(2).
if v_yr <> p_gjahr+2(2) .
delete wbs_tab index sy-tabix.
endif.
clear: v_yr, v_gl.
endloop.
sort wbs_tab by pspnr posid.
endform. "get_wbs_data
*& Form get_net_ord_data
Get the Network, Orders Data for the WBS
form get_net_ord_data.
Get the Network data
clear: net_tab, ord_tab.
refresh: net_tab, ord_tab.
if not wbs_tab[] is initial.
select a~aufnr " Order No
a~ftrmi " Release Date
a~pronr " Project No
b~aufpl " Routing No
b~aplzl " Counter No
b~objnr " Object No
b~projn " WBS Element
into table net_tab
from afko as a join afvc as b
on aaufpl eq baufpl
for all entries in wbs_tab
-
How do I calculate Year to Date?
Dear Colleagues,
I need to calculate Year to Date-revenue. Date is a prompt input, so the customer can choose which ever day he wants. How can I get revenue YTD based on the input? Is this a BODI assigment more than a BO assignment?
Looking forward to give you some points!
Regards SiljeHi Silje,
Normally you would build objects like this in designer (oracle syntax):
sum(case when tab.datecolumn
between (@prompt('give ytd date','D',,mono,free)-to_number(to_char(@prompt('give ytd date','D',,mono,free),'ddd'))
and @prompt('give ytd date','D',,mono,free) then tab.amountcolumn
end)
So basically sum all the amounts only if they are between the start of the year and the given date.
You use simple date manipulation to get to the right when condition, it can be based of a prompted date,
but also of the sysdate (current date).
There are dozens of variants here, you can build
year to date amounts (this year, last year, given year),
period amounts (given period, current period, last full period),
week amounts (current week, last week, last x weeks), full year amounts, etc.
you get the idea...
So get your wish list ready and talk to your designer...
Hope this helps,
Marianne
P.S. should you wish to do it in the report, use a prompted date object in the query & select the date to compare in the query (note that you might get an awful lot of row back here)
sum(<amount object> where (<date object> between <given date>-ToNumber(FormatDate(<given date>,"ddd")) and <given date>) -
Roll up information for Year To Date
Hello,
I have some sales data as follows
Item_Id Country_Id Region_ID Month_begin_date Quantity Amount
s1 C1 r1 10/1/2008 20 2000.05
s2 C1 r1 10/1/2008 100 4350.45
s3 c2 r2 11/1/2008 50 3200.00
s3 c1 r3 12/1/2008 102 5102.50
s3 C2 r2 01/1/2009 35 1989.45
s2 c1 r1 02/1/2009 56 2989.00
s3 C3 r3 03/1/2009 29 1129.00
s1 c3 r3 04/1/2009 455 3000.00
s2 c2 r2 05/1/2009 123 2345.00
s3 c2 r1 06/1/2009 40 1878.00
s1 c2 r2 07/1/2009 65 1123.00
s2 c2 r2 08/1/2009 100 1000.50
s3 c3 c3 09/1/2009 191 2500.00
s1 c2 r3 08/1/2009 299 3448.50
s2 c3 r3 09/1/2009 432 5000.00
s3 c1 r3 07/1/2009 175 4000.00
here item_id,country_id,region_id,month_begin_date are together composite primary key...
I want to get year to date (sum from the INITIAL date to sysdate) OF sum of quantity and sum of amounts to above data .
I.E. Query should consider records until 7/1/2009
and calculates sum of quntity and amount group by primary key fields...
s1 C1 r1 10/1/2008 20 2000.05
s2 C1 r1 10/1/2008 100 4350.45
s3 c2 r2 11/1/2008 50 3200.00
s3 c1 r3 12/1/2008 102 5102.50
s3 C2 r2 01/1/2009 35 1989.45
s2 c1 r1 02/1/2009 56 2989.00
s3 C3 r3 03/1/2009 29 1129.00
s1 c3 r3 04/1/2009 455 3000.00
s2 c2 r2 05/1/2009 123 2345.00
s3 c2 r1 06/1/2009 40 1878.00
s1 c2 r2 07/1/2009 65 1123.00
Thanks in advance...
please help me out....Welcome to Forum!!
SELECT
Item_Id, Country_Id, Region_ID, Month_begin_date, SUM(Quantity) , SUM (Amount)
FROM TABLE_NAME --Add your table Name
WHERE Month_begin_date < = SYSDATE --will Reject records having date > sysdate
--Remember the date comparision is bit tricky
GROUP BY Item_Id, Country_Id, Region_ID, Month_begin_date1 min :: You want to GROUP the data on the basis of primary key: thats NOT logical
Edited by: AJ99 on Jul 1, 2009 11:25 AM
Edited by: AJ99 on Jul 1, 2009 11:29 AM -
Add-days-to-date throwing error in formcalc
I am receiving an error of Error: Accessor 'add' is unknow.
Any help is much appreciated.
Justinform1.page2.invoiceTable.row1.boosterDate1.rawValue = add-days-to-date(form1.page2.page2Date,4)
The form1.page2.page2Date is copying a cell that has:
$.rawValue = num2date(Date(), "MM/DD/YYYY")
I'm not sure where I'm going wrong here. I've also tried using javascript and can't get that to work either. I am trying to take a date and add days to it dynamically. So user selects "weeks" from a dropdown and "years" from a dropdown and from that point I want to add that amount of days to today's date. I can get the math to work but for the life of me I can't figure out how to make the Date() function work to add some days to it.
Justin -
Till Last Year, To Date - Discoverer......
We have following table X
PNO Date Amount
10 10/31/2006 10
10 11/30/2006 15
10 11/30/2007 20
10 12/31/2007 30
10 1/31/2008 15
10 2/29/2008 25
10 3/31/2008 40
We need to create report as follows, the parameter is the Date.
Lets say user pass parameter : 3/31/2008
The report should look like,
PNO TillLastYear To date
10 75 155
Till Last Year - Sum of Amount column till Last Year
To Date - Sum of Amount Column to the date parameter passed.
Could some on guide me how to achieve this......?Hi,
You need to add the PNO item into your report and then create calculations based on your date item:
TillLastYear SUM(CASE WHEN DateItem < TRUNC(SYSDATE,'Y') THEN Amount END)
ToDate SUM(CASE WHEN DateItem < :DateParameter THEN Amount END)
Rod West -
Year to Date and Monthly totals
I know that this is rather simplistic, but I'm new to Discoverer and need to set up a bunch of sales reports with MTD and YTD columns. I'm going to be using the same SQL query for many of my reports but customizing the reports to show sales by state, product line, etc.
Is there a formula/function I can use in Discover for the Month to Date and Year to Date totals?
Thanks,
JosephHi Joseph
You can use the analytic range SUM calculation for these. For the month to date, use the a PARTITION BY of month with a range of all the preceding rows in the partition up to and including the current row. For the year, you would simply change the PARTITION BY to be the year.
Here are some examples drawn from my own database:
I have the following items:
ORDER_YEAR
ORDER_MONTH
ORDER_DATE
SELLING_PRICE
With these defined, the formula for month to date is:
SUM(Sales.Selling Price SUM) OVER (PARTITION BY ORDER_MONTH ORDER BY ORDER_DATE ASC ROWS UNBOUNDED PRECEDING)
The formlua for year to date is:
SUM(Selling Price SUM) OVER(PARTITION BY ORDER_YEAR ORDER BY ORDER_DATE ASC ROWS UNBOUNDED PRECEDING )
Basically what we are doing is telling Discoverer to SUM the SELLING_PRICE, and you should be able to take these and adjust them for your own report.
Let me take a look at the month to end and describe what is going on. Basically the PARTITION BY is defining a set of rows which are to be included. In this case it is all rows that have the same ORDER_MONTH. The ORDER BY clause tells Discoverer to place the items in order, with the oldest order first. The ROWS UNBOUNDED PRECEDING tells Discoverer to SUM all of the items within the set (within the PARTITION BY) from the oldest item (UNBOUNDED PRECEDING) to and including the current item. We could have added a BETWEEN clause too but that is implied. With a BETWEEN clause it would look like this:
SUM(Sales.Selling Price SUM) OVER (PARTITION BY ORDER_MONTH ORDER BY ORDER_DATE ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
If you want the current row to be included with UNBOUNDED PRECEDING you don't need to explicitly name it because that is the default. Other options you could use are these:
UNBOUNDED FOLLOWING - this SUMS to the end of the PARTITION
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING - you can guess that this will add all of the items, which you will rarely use because if you omit the ROWS command then this range between first and last is actually the default
Rather than ROWS BETWEEN you can also say RANGE BETWEEN, like this:
SUM(Sales.Selling Price SUM) OVER (PARTITION BY ORDER_MONTH ORDER BY ORDER_DATE ASC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
I hope this little dissertation on running totals helps.
Best wishes
Michael -
Using an expression in SSRS to display rolling 12 month and year to date volumes
I need some help in writing an expression in SSRS. I have a table that contains date columns and rows that contain different types of data groups. (e.g. total number of items received during the month, total dollars for the month, etc.) I want to add two
new columns to the end of the report that will display a rolling twelve month total for each of the different rows of data. Plus a column that would show year to date totals for the same rows.
I was thinking I could accomplish this by adding expressions for each row in the new 'rolling twelve month' and 'YTD' columns in my report however, I'm not sure how to structure the expressions to achieve this.
Here is an example of how my report currently looks. (I added a pipe delimeter in case the formatting changes once this is submitted.)
Jan-2014 | Feb-2014 | Mar-2014 | Apr-2014 | Rolling 12 mth | YTD
Items received 100 | 35 | 45 | 12 | 192 | 192
Dollars $50.00 | $25.00 | $120.00 | $15.00 | $210.00 | $210.00
Any guidance you can provide would be appreciated.
Thank youThis example shows how to get what you need. It'll take modifying your query to add two cased columns onto the end.
DECLARE @forumTable TABLE (periodYear INT, periodMonth INT, periodMonthName VARCHAR(12), periodDollars MONEY, periodItems INT)
DECLARE @i INT = 0
SET NOCOUNT ON
WHILE @i < 24
BEGIN
INSERT INTO @forumTable (periodYear, periodMonth, periodMonthName, periodDollars, periodItems)
VALUES (YEAR(DATEADD(MONTH,-@i,GETDATE())), Month(DATEADD(MONTH,-@i,GETDATE())), DATENAME(MONTH,DATEADD(MONTH,-@i,GETDATE())), 1000-@i, 100-@i)
SET @i = @i+1
END
SET NOCOUNT OFF
SELECT *,
CASE WHEN CONVERT(VARCHAR,periodYear) + '-' + CONVERT(VARCHAR,periodMonth) + '-01' > DATEADD(MONTH,-12,GETDATE()) THEN periodItems ELSE 0 END AS ytdItems,
CASE WHEN CONVERT(VARCHAR,periodYear) + '-' + CONVERT(VARCHAR,periodMonth) + '-01' > DATEADD(MONTH,-12,GETDATE()) THEN periodDollars ELSE 0 END AS ytdDollars
FROM @forumTable -
GROUP BY GROUPING SETS for a selected month and for year to date
Below is a code example to demonstrate this question:
declare @test table (ID int, Quantity int, Day date);
insert into @test values
(4, 500, '1/18/2014'),
(4, 550, '1/28/2014'),
(7, 600, '1/10/2014'),
(7, 750, '1/11/2014'),
(7, 800, '1/20/2014'),
(1, 100, '1/2/2014'),
(1, 125, '1/10/2014'),
(8, 300, '1/7/2014'),
(9, 200, '1/17/2014'),
(9, 100, '1/22/2014'),
(4, 900, '2/18/2014'),
(4, 550, '2/28/2014'),
(7, 600, '2/10/2014'),
(7, 700, '2/11/2014'),
(7, 800, '2/20/2014'),
(1, 100, '2/2/2014'),
(1, 150, '2/10/2014'),
(8, 300, '2/7/2014'),
(9, 200, '2/17/2014'),
(9, 100, '2/22/2014'),
(4, 500, '3/18/2014'),
(4, 550, '3/28/2014'),
(7, 600, '3/10/2014'),
(7, 750, '3/11/2014'),
(7, 800, '3/20/2014'),
(1, 100, '3/2/2014'),
(1, 325, '3/10/2014'),
(8, 300, '3/7/2014'),
(9, 200, '3/17/2014'),
(9, 100, '3/22/2014'),
(4, 500, '4/18/2014'),
(4, 550, '4/28/2014'),
(7, 100, '4/10/2014'),
(7, 750, '4/11/2014'),
(7, 800, '4/20/2014'),
(1, 100, '4/2/2014'),
(1, 325, '4/10/2014'),
(8, 300, '4/7/2014'),
(9, 200, '4/17/2014'),
(9, 100, '4/22/2014'),
(4, 500, '5/18/2014'),
(4, 550, '5/28/2014'),
(7, 600, '5/10/2014'),
(7, 750, '5/11/2014'),
(7, 50, '5/20/2014'),
(1, 100, '5/2/2014'),
(1, 325, '5/10/2014'),
(8, 300, '5/7/2014'),
(9, 200, '5/17/2014'),
(9, 100, '5/22/2014');
--detail
select *
from @test;
--aggregation
select
TotalQuantity = sum(Quantity),
[Month] = month(Day)
from @test
group by
grouping sets
(month(Day)),
(year(Day))
go
This is the aggregation query result:
However, the desired result is to return only two rows: one row for month 3 and the other row for year to date (in the picture above YTD is the row that appears with {null} in the Month column). Is there a way to achieve this goal by modifying the
sample code above? The requirement is to only read the data once (do not want a solution that involves a UNION which implies reading the data twice).you can add required filters in having clause. Here is the query -
select
TotalQuantity = sum(Quantity),
[Month] = month(Day)
from @test
group by
grouping sets
(month(Day)),
(year(Day))
having
month(Day) = 3 or month(Day) is null; -
Year to Date Problem on Monthly Loads
Hi SDN team,
I have few clarifications necessary.
I've a query & it uses 2 structures. we decide to use cells using cell editor afterwards.
We have plan versus actual issue. One row is plan for one full year. We have a plan figure for each month of year 2004, from Jan till Dec. Now I need to create a totals. Is it possible to create total column for this?
In that column the plan figures ahould be shown as sum for the "year to date-values" - for example from Jan'04 till Apr'04 or Jun'04, not the totals for the whole year.
Selected Month SEP. Plan from Jan - Dec. Totals: 2*Total. Total we need: Sum (year to date because of month). If there's any solution for this please let me know.Hi, You need to add the YTD logic/functions between the 2 statements... Please try this... I've added the crude logic here. Pls. refine as you need for your requirement.
WHEN 'VAR4JUN'.
IF I_STEP = '2'.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZYOUR_VARIABLE'.
** DATA INITIALIZATION ** (This is optional)
TV4Y = LOC_VAR_RANGE-LOW+0(4). ** YEAR
TV4M = LOC_VAR_RANGE-LOW+4(2). ** MONTH
** FUNCTION **
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING INPUT = TV4M
IMPORTING OUTPUT = TV4M.
** DATA LOGIC FOR YTD**
IF TV4M= '06' OR TV4M= '07' OR TV4M= '08' OR
TV4M= '09' OR TV4M= '10' OR TV4M= '11' OR TV4M= '12'.
CONCATENATE TV4Y '06' INTO L_S_RANGE-LOW. ** Also for HIGH
ELSEIF TV4M= '01' OR TV4M= '02' OR TV4M= '03'.
TV4Y = TV4Y - 1.
CONCATENATE TV4Y '06' INTO L_S_RANGE-LOW.. ** Also for HIGH
ENDIF.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF. -
Calculating HTD(Half Year to date) in Essbase
Hi All,
Is there any way in essbase where in you can calculate HTD(half year to date) Values.
I know in essbase we have Dynamic time series where in you can calculate YTD,HTD(History to date),MTD,QTD,...etc.
can you guys have any thoughts on as how HTD(half year to date) is achievable in essbase.
thanks in advance.Can you modify your time dimension to look like
Time
-1st Half
---Qtr1
------Jan
------Feb
------Mar
---Qtr2
------Apr
------May
------Jun
-2nd Half
---Qtr3
------Jul
------Aug
------Sep
---Qtr4
------Oct
------Nov
------Dec
If so, you could enable a dts member and set the alias to be hf-t-d
if you can't add those members, condider adding a dynamic calc member with a formula
psudo logic would be
If it is a descendant of Q1 or Q2 then sum Jan to the current month else if it is a descendant of q3 or 4 sum jul to the current month -
Year to Date reports using Prompts
Hi.
I'm trying to build a report that will show results of sales compared to Annual targets. All those fields are fields directly at the opportunity level (amount and targets). I also need to put a prompt to select dates from and to, for the Opportunity Close date. I've used Variables for this, and am comparing throuhg two filters "Opportunity.Close Date greater than pvCloseDateFrom" and "Opportunity.Close Date lower than pvCloseDateTo". I'm also presenting the % Achievment, which is the % of Total Sales compared to the Target field.
So far the report is simple
User - Total Amount of Sales - Target FIeld - % Realized.
The difficulty I'm facing concern the next set of columns in the report : I also need to present the Year to Date Target that is represented by the number of days between the two dates prompted (for instance if I prompt 01/01/2010 and 31/03/2010 needs to show 25% of the total target) along with the % of SAles compared to this new target calculated field.
I'm having issues with the TIMESTAMPDIFF function through the Presentation Variables as it either tells that the type is not correct even if I'm trying to use the CAST function or it discard part of the string when I'm trying to rebuilt the date as a timestamp : in my configuration date are presented D/M/YYYY where my timestamp function expects DDDD-MM-DD HH-MI-SS.
Is there anyone who could have an example of such calculations in a report based on dates and duration ?
Thanks in advance for your help !!
OlivierDear Adam,
For Year to Date , We have created a Customer Exit , For working , Create a Variable for 0calday and populate that with from and to value ...to value would be Sy-datum and From value is year starting date. Hope it helps..
Thanks,
Krish
Maybe you are looking for
-
Hi every one, I have upgraded my old iBook G4 (1.33) to Leopard, but after a while, I can't see much benefit of it, and the computer was faster on Tiger (Tiger is 10.4?). How could I back up everything and go back to Tiger on the easy way?, Could I j
-
Is there a way to restore an erased history?
My kids have recently started erasing the history on my computer. I want to go back and see what they are looking at. Is there any way to restore a history once it has been cleared? Thanks
-
How to control item between Form mode change
Hi Experts I am using B1DE to do something like some item's enable status will be changed following the Form mode change. For instance, add a new matrix into system form, if changing the Form mode to Find, I want to disable this matrix, if changing t
-
Entity with nested entities, create method generated incorrectly
For the sake of this question, assume I have two entities: Header, and LineItem. The Header has 0..n LineItems. I've modeled this in the CAS by creating two entities, with a nested relationship between teh two. Tables were created correctly, every
-
Photoshop CS6 missing from launchpad
OK, this has been making me crazy for quite a while now..... System Info: MacBook Air 13-inch, Mid 2012 Processor 2 GHz Intel Core i7 Memory 8 GB 1600 MHz DDR3 Graphics Intel HD Graphics 4000 Serial Number irrelevant Software OS X 10.9.4 (13E28)