Please I,m new sql so I have no code. Any help will be appreciated.
What data do you have?
What output do you expect?
Please provide the table definition and example data for both input and output.
CREATE TABLE [dbo].[journal_voucher_t](
[jv_id] [int] IDENTITY(1,1) NOT NULL,
[jv_date] [date] NOT NULL,
[coa_name] nvarchar NOT NULL,
[debit] [money] NOT NULL,
[credit] [money] NOT NULL,
CONSTRAINT [PK_journal_voucher_t] PRIMARY KEY CLUSTERED
(
[jv_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Something like this perhaps:
declare @fiscal_start date=cast('2014-09-01' as date);
select coa_name
,sum(debit) as debit
,sum(credit) as credit
from dbo.journal_voucher_t
where jv_date>=@fiscal_start
and jv_date<dateadd(year,1,@fiscal_start)
group by coa_name
;
Thank you for your reply. But this does not solve my problem. What I want is, at the of every year, there should be a function or stored procedure that will deduct all expense from income and roll it up to balance sheet.
Which tables are to be rolled up?
Please provide:
- table description in form of create statement(s)
- sample data in form of insert statement(s)
- expected result from your sample data
Below is my table with sample data
CREATE TABLE [dbo].[chart_of_account_t](
[coa_id] [int] IDENTITY(1,1) NOT NULL,
[coa_code] nvarchar NOT NULL,
[coa_name] nvarchar NOT NULL,
[coa_type] nvarchar NOT NULL,
[coa_type_cate] nvarchar NOT NULL,
[ext_rep] nvarchar NULL,
CONSTRAINT [PK_chart_of_account_t] PRIMARY KEY CLUSTERED
(
[coa_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[journal_voucher_t](
[jv_id] [int] IDENTITY(1,1) NOT NULL,
[jv_date] [date] NOT NULL,
[coa_name] nvarchar NOT NULL,
[debit] [money] NOT NULL,
[credit] [money] NOT NULL,
CONSTRAINT [PK_journal_voucher_t] PRIMARY KEY CLUSTERED
(
[jv_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Insert Into journal_voucher_t (jv_date ,coa_name ,debit ,credit ) Values ('2014-09-01','Cash in Vault','500000.0000','0.0000')
Insert Into journal_voucher_t (jv_date ,coa_name ,debit ,credit ) Values ('2014-09-01','Savings','0.0000','500000.0000')
Insert Into journal_voucher_t (jv_date ,coa_name ,debit ,credit ) Values ('2014-09-01','Cash in Vault','10000.0000','0.0000')
Insert Into journal_voucher_t (jv_date ,coa_name ,debit ,credit ) Values ('2014-09-01','Income from Stock','0.0000','10000.0000')
This stored procedure is working fine. But what i want is a function in the stored procedure that will look at the fiscal end date and auto insert net income into the database as a retained earnings.
CREATE PROCEDURE [dbo].[mfi_PL]
AS
SELECT 'Income :' AS [Accounts],CAST('+' AS Int) AS [US]
UNION ALL
SELECT chart_of_account_t.coa_name AS 'Income', CAST(SUM(Credit-Debit)AS INT)AS [US]
FROM chart_of_account_t JOIN journal_voucher_t
ON chart_of_account_t .coa_name = journal_voucher_t .coa_name
WHERE chart_of_account_t.coa_type IN ('REV') and chart_of_account_t .coa_type_cate in ('PL')
GROUP BY chart_of_account_t .coa_name,chart_of_account_t .coa_code
UNION ALL SELECT '', '' UNION ALL
SELECT 'Total Income', CAST(SUM(Credit-Debit)AS INT)AS [US]
FROM chart_of_account_t JOIN journal_voucher_t
ON chart_of_account_t .coa_name = journal_voucher_t .coa_name
WHERE chart_of_account_t .coa_type IN ('REV')
UNION ALL SELECT '', '' UNION ALL SELECT '','' UNION ALL
SELECT 'Expenses :' AS [Account Name],CAST('+' AS Int) AS [US]
UNION ALL
SELECT 'Personnel Expenses :' AS [Account Name],CAST('+' AS Int) AS [US]
UNION ALL SELECT chart_of_account_t.coa_name AS 'Personnel Expenses', CAST(SUM(Debit-Credit)AS INT)AS [US]
FROM chart_of_account_t JOIN journal_voucher_t
ON chart_of_account_t .coa_name = journal_voucher_t .coa_name
WHERE chart_of_account_t.coa_type IN ('PEREX') and chart_of_account_t .coa_type_cate in ('PL')
GROUP BY chart_of_account_t .coa_name,chart_of_account_t .coa_code
UNION ALL SELECT '', '' UNION ALL SELECT '', ''
UNION ALL SELECT 'Financial Expenses :' AS [Account Name],CAST('+' AS Int) AS [US]
UNION ALL
SELECT chart_of_account_t.coa_name AS 'Financial Expenses', CAST(SUM(Debit-Credit)AS INT)AS [US]
FROM chart_of_account_t JOIN journal_voucher_t
ON chart_of_account_t .coa_name = journal_voucher_t .coa_name
WHERE chart_of_account_t.coa_type IN ('FINEX') and chart_of_account_t .coa_type_cate in ('PL')
GROUP BY chart_of_account_t .coa_name,chart_of_account_t .coa_code
UNION ALL SELECT '', '' UNION ALL SELECT '', '' UNION ALL
SELECT 'Administarive Expenses :' AS [Account Name],CAST('+' AS Int) AS [US]
UNION ALL SELECT chart_of_account_t.coa_name AS 'Administarive Expenses', CAST(SUM(Debit-Credit)AS INT)AS [US]
FROM chart_of_account_t JOIN journal_voucher_t
ON chart_of_account_t .coa_name = journal_voucher_t .coa_name
WHERE chart_of_account_t.coa_type IN ('ADMEX') and chart_of_account_t .coa_type_cate in ('PL')
GROUP BY chart_of_account_t .coa_name,chart_of_account_t .coa_code
UNION ALL SELECT '','' union all select '', ''
union all select 'Total Expenses ',cast(sum(Debit-Credit) as INT) as [US]
from chart_of_account_t join journal_voucher_t on chart_of_account_t .coa_name = journal_voucher_t .coa_name
where chart_of_account_t .coa_type in ('PEREX','FINEX','ADMEX') and chart_of_account_t .coa_type_cate in ('PL')
union all select '','' union all select '',''
union all select 'Net Operating Income ',cast(sum(Credit-Debit) as INT) as [US]
from chart_of_account_t join journal_voucher_t on chart_of_account_t .coa_name = journal_voucher_t .coa_name
where chart_of_account_t .coa_type in ('REV','PEREX','FINEX','ADMEX') and chart_of_account_t .coa_type_cate in ('PL')
union all select '','' union all select '','' UNION ALL
SELECT '', '' UNION ALL
SELECT 'Other Non Operating Income :' AS [Account Name],CAST('+' AS Int) AS [US]
UNION ALL
SELECT chart_of_account_t.coa_name AS 'Other Non Operating Income', CAST(SUM(Debit-Credit)AS INT)AS [US]
FROM chart_of_account_t JOIN journal_voucher_t
ON chart_of_account_t .coa_name = journal_voucher_t .coa_name
WHERE chart_of_account_t.ext_rep IN ('GFA','OPC') and chart_of_account_t .coa_type_cate in ('PL')
GROUP BY chart_of_account_t .coa_name,chart_of_account_t .coa_code
UNION ALL SELECT '', '' union all
select 'Total Income ',cast(sum(Credit-Debit) as INT) as [US]
from chart_of_account_t join journal_voucher_t on chart_of_account_t .coa_name = journal_voucher_t .coa_name
where chart_of_account_t .coa_type in ('REV','PEREX','FINEX','ADMEX') and chart_of_account_t .coa_type_cate in ('PL')
union all select '','' union all select '',''