5.大区select和对应城市select:xml格式

<?xml version="1.0" encoding="UTF-8"?>

<items>
  <item>
    <id>10018</id>
    <name>长春</name>
  </item>
  <item>
    <id>10019</id>
    <name>沈阳</name>
  </item>
  <item>
    <id>10017</id>
    <name>哈尔滨</name>
  </item>
</items>

select *, '同比' as TB, '实际占比' as SJZB, '预算占比' as BGZB from (select 'it' as code, t1.*, case when t2.amountI = 0 then null else t1.amount / t2.amountI end as amountIT from (select base.Item_Code, base.Primary_Department_Code as department, base.Primary_Department as departmentName, base.Account as AccountT, YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account and base.Secondary_Department_Code = MainSheet.部门 where base.Account in ('Research_Expense','Sell_Expense','Admini_Cost') and 年结JE <> 'T' and base.Primary_Department not in('八大区','服务部') group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Account, base.Primary_Department_Code, base.Item_Code, account.Account_Attribute, account.Account_AttributeName, base.Primary_Department)t1 left join (select YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) * base.Mark as amountI from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account where base.Item_Code = '6001' and account.Account_Mark = 'Inco_Main' and 年结JE <> 'T' group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Mark)t2 on t1.yearT = t2.yearT and t1.monthT = t2.monthT union all select 'yoy' as code, t1.*, case when t2.amount = 0 then null else (t1.amount - t2.amount) / ABS(t2.amount)end as YOY from (select base.Item_Code, base.Primary_Department_Code as department, base.Primary_Department as departmentName, base.Account as AccountT, YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account and base.Secondary_Department_Code = MainSheet.部门 where base.Account in ('Research_Expense','Sell_Expense','Admini_Cost') and 年结JE <> 'T' and base.Primary_Department not in('八大区','服务部') group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Account, base.Primary_Department_Code, base.Item_Code, account.Account_Attribute, account.Account_AttributeName, base.Primary_Department)t1 left join (select base.Item_Code, base.Primary_Department_Code as department, base.Primary_Department as departmentName, base.Account as AccountT, YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account and base.Secondary_Department_Code = MainSheet.部门 where base.Account in ('Research_Expense','Sell_Expense','Admini_Cost') and 年结JE <> 'T' and base.Primary_Department not in('八大区','服务部') group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Account, base.Primary_Department_Code, base.Item_Code, account.Account_Attribute, account.Account_AttributeName, base.Primary_Department)t2 on t1.yearT - 1 = t2.yearT and t1.monthT = t2.monthT and t1.department = t2.department and t1.Account_Attribute = t2.Account_Attribute union all select 'bg' as code, t1.*, case when t2.amount = 0 then null else t1.amount / t2.amount end as amountBT from (select Budget_code, Budget_Department_Code as department, Budget_Department as departmentName, Budget_Account as AccountT, YEAR(MainSheet.Budget_Time) as yearT, MONTH(MainSheet.Budget_Time) as monthT, SUM(MainSheet.Budget_Amount) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[finance_Budget_Sub] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.Budget_Account_Code = account.Account_Code where Budget_Account in ('Research_Expense','Sell_Expense','Admini_Cost') and Budget_Department_Code not in('107','108','109','110','111','112','113','114','115','116','117','118','124') group by YEAR(MainSheet.Budget_Time), MONTH(MainSheet.Budget_Time), Budget_Account, Budget_Department_Code, Budget_code, account.Account_Attribute, account.Account_AttributeName, Budget_Department)t1 left join (select YEAR(Budget_Time) as yearT, MONTH(Budget_Time) as monthT, SUM(Budget_Amount) as amount from [dbo].[finance_Budget_Sub] where Budget_code = '6001' group by YEAR(Budget_Time), MONTH(Budget_Time))t2 on t1.yearT = t2.yearT and t1.monthT = t2.monthT union all ------------------------------服务部、八大区 select 'it' as code, t1.*, case when t2.amountI = 0 then null else t1.amount / t2.amountI end as amountIT from (select base.Item_Code, base.Secondary_Department_Name as department, base.Primary_Department as departmentName, base.Account as AccountT, YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account and base.Secondary_Department_Code = MainSheet.部门 where base.Account = 'Sell_Expense' and 年结JE <> 'T' and base.Primary_Department in ('八大区','服务部') group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Account, base.Secondary_Department_Name, base.Item_Code, account.Account_Attribute, account.Account_AttributeName, base.Primary_Department)t1 left join (select YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) * base.Mark as amountI from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account where base.Item_Code = '6001' and account.Account_Mark = 'Inco_Main' and 年结JE <> 'T' group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Mark)t2 on t1.yearT = t2.yearT and t1.monthT = t2.monthT union all select 'yoy' as code, t1.*, case when t2.amount = 0 then null else (t1.amount - t2.amount) / ABS(t2.amount) end as YOY from (select base.Item_Code, base.Secondary_Department_Name as department, base.Primary_Department as departmentName, base.Account as AccountT, YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account and base.Secondary_Department_Code = MainSheet.部门 where base.Account = 'Sell_Expense' and 年结JE <> 'T' and base.Primary_Department in ('八大区','服务部') group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Account, base.Secondary_Department_Name, base.Item_Code, account.Account_Attribute, account.Account_AttributeName, base.Primary_Department)t1 left join (select base.Item_Code, base.Secondary_Department_Name as department, base.Primary_Department as departmentName, base.Account as AccountT, YEAR(MainSheet.日期) as yearT, MONTH(MainSheet.日期) as monthT, SUM(MainSheet.金额) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[序时账] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.科目编码 = account.Account_Code left join [dbo].[sys_finance_base] base on account.Base_Code = base.Item_Code and account.Account_Mark = base.Account and base.Secondary_Department_Code = MainSheet.部门 where base.Account = 'Sell_Expense' and 年结JE <> 'T' and base.Primary_Department in ('八大区','服务部') group by YEAR(MainSheet.日期), MONTH(MainSheet.日期), base.Account, base.Secondary_Department_Name, base.Item_Code, account.Account_Attribute, account.Account_AttributeName, base.Primary_Department)t2 on t1.yearT - 1 = t2.yearT and t1.monthT = t2.monthT and t1.department = t2.department and t1.Account_Attribute = t2.Account_Attribute union all select 'bg' as code, t1.*, case when t2.amount = 0 then null else t1.amount / t2.amount end as amountBT from (select Budget_code, Budget_Department as department, CAST('八大区' as varchar) as departmentName, Budget_Account as AccountT, YEAR(MainSheet.Budget_Time) as yearT, MONTH(MainSheet.Budget_Time) as monthT, SUM(MainSheet.Budget_Amount) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[finance_Budget_Sub] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.Budget_Account_Code = account.Account_Code where Budget_Account = 'Sell_Expense' and Budget_Department_Code in ('107','108','109','110','111','112','113','114') group by YEAR(MainSheet.Budget_Time), MONTH(MainSheet.Budget_Time), Budget_Account, Budget_Department_Code, Budget_code, account.Account_Attribute, account.Account_AttributeName, Budget_Department)t1 left join (select YEAR(Budget_Time) as yearT, MONTH(Budget_Time) as monthT, SUM(Budget_Amount) as amount from [dbo].[finance_Budget_Sub] where Budget_code = '6001' group by YEAR(Budget_Time), MONTH(Budget_Time))t2 on t1.yearT = t2.yearT and t1.monthT = t2.monthT union all select 'bg' as code, t1.*, case when t2.amount = 0 then null else t1.amount / t2.amount end as amountBT from (select Budget_code, Budget_Department as department, CAST('服务部' as varchar) as departmentName, Budget_Account as AccountT, YEAR(MainSheet.Budget_Time) as yearT, MONTH(MainSheet.Budget_Time) as monthT, SUM(MainSheet.Budget_Amount) as amount, account.Account_Attribute as Account_Attribute, account.Account_AttributeName as NameT from [dbo].[finance_Budget_Sub] MainSheet left join [dbo].[sys_finance_account] account on MainSheet.Budget_Account_Code = account.Account_Code where Budget_Account = 'Sell_Expense' and Budget_Department_Code in ('115','116','117','118','124') group by YEAR(MainSheet.Budget_Time), MONTH(MainSheet.Budget_Time), Budget_Account, Budget_Department_Code, Budget_code, account.Account_Attribute, account.Account_AttributeName, Budget_Department)t1 left join (select YEAR(Budget_Time) as yearT, MONTH(Budget_Time) as monthT, SUM(Budget_Amount) as amount from [dbo].[finance_Budget_Sub] where Budget_code = '6001' group by YEAR(Budget_Time), MONTH(Budget_Time))t2 on t1.yearT = t2.yearT and t1.monthT = t2.monthT)A1 这段sql报以上错误,在哪里发生隐式转换找出来
最新发布
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值