diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
index d26a3fc..42dead4 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
+++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
@@ -10,8 +10,8 @@
 def execute(filters=None):
 	period_list = get_period_list(filters.fiscal_year, filters.periodicity)
 	
-	income = get_data(filters.company, "Income", "Credit", period_list, ignore_closing_entries=True)
-	expense = get_data(filters.company, "Expense", "Debit", period_list, ignore_closing_entries=True)
+	income = get_data(filters.company, "Income", "Credit", period_list, filters.accumulated_value, ignore_closing_entries=True)
+	expense = get_data(filters.company, "Expense", "Debit", period_list, filters.accumulated_value, ignore_closing_entries=True)
 	net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
 
 	data = []
@@ -20,7 +20,7 @@
 	if net_profit_loss:
 		data.append(net_profit_loss)
 
-	columns = get_columns(period_list, filters.company)
+	columns = get_columns(filters.periodicity,period_list,filters.accumulated_value)
 
 	return columns, data
 
@@ -33,7 +33,17 @@
 			"currency": frappe.db.get_value("Company", company, "default_currency")
 		}
 
+		has_value = False
+
 		for period in period_list:
 			net_profit_loss[period.key] = flt(income[-2][period.key] - expense[-2][period.key], 3)
+			
+			if net_profit_loss[period.key]:
+				has_value=True
+			
+			total_column=total_column+net_profit_loss[period.key]
+			net_profit_loss["total"]=total_column
+		
+		if has_value:
 
-		return net_profit_loss
+			return net_profit_loss
