1、能求出差的语句: “剩余专款”能得出正确的数值
SELECT a.上级文号, a.来款项目, a.科目编码, a.科目名称, a.来款金额, a.资金分类, a.备注, b.指标文号, b.单位名称, b.补助内容, b.补助金额,
CASE WHEN EXISTS
(SELECT 1
FROM yusuanxiada
WHERE 上级文号 = b.上级文号 AND 单位名称> b.单位名称 )
THEN NULL ELSE a.来款金额 - ISNULL(C.C , 0) END AS 剩余专款
FROM zhuankuanlaikuan AS a LEFT OUTER JOIN
yusuanxiada AS b ON a.上级文号 = b.上级文号 AND
a.上级文号 > '0' LEFT OUTER JOIN
(SELECT 上级文号, SUM(补助金额) AS C
FROM yusuanxiada
GROUP BY 上级文号) AS C ON a.上级文号 = C.上级文号2、不能求出差的语句: “剩余未分配”是空白 SELECT a.项目名称, a.金额, b.指标文号, b.单位名称, b.补助内容, b.补助金额, b.备注,
CASE WHEN EXISTS
(SELECT 1
FROM yusuanxiada
WHERE 项目名称 = b.年初市级专项 AND 单位名称 > b.单位名称)
THEN NULL ELSE a.金额 - ISNULL(C.C, 0) END AS 剩余未分配
FROM 市级专项 AS a LEFT OUTER JOIN
yusuanxiada AS b ON a.项目名称 = b.年初市级专项 AND
a.项目名称> '0' LEFT OUTER JOIN
(SELECT 年初市级专项, SUM(补助金额) AS C
FROM yusuanxiada
GROUP BY 年初市级专项) AS C ON a.项目名称 = C.年初市级专项
能给出原因及解决方法吗?
SELECT a.上级文号, a.来款项目, a.科目编码, a.科目名称, a.来款金额, a.资金分类, a.备注, b.指标文号, b.单位名称, b.补助内容, b.补助金额,
CASE WHEN EXISTS
(SELECT 1
FROM yusuanxiada
WHERE 上级文号 = b.上级文号 AND 单位名称> b.单位名称 )
THEN NULL ELSE a.来款金额 - ISNULL(C.C , 0) END AS 剩余专款
FROM zhuankuanlaikuan AS a LEFT OUTER JOIN
yusuanxiada AS b ON a.上级文号 = b.上级文号 AND
a.上级文号 > '0' LEFT OUTER JOIN
(SELECT 上级文号, SUM(补助金额) AS C
FROM yusuanxiada
GROUP BY 上级文号) AS C ON a.上级文号 = C.上级文号2、不能求出差的语句: “剩余未分配”是空白 SELECT a.项目名称, a.金额, b.指标文号, b.单位名称, b.补助内容, b.补助金额, b.备注,
CASE WHEN EXISTS
(SELECT 1
FROM yusuanxiada
WHERE 项目名称 = b.年初市级专项 AND 单位名称 > b.单位名称)
THEN NULL ELSE a.金额 - ISNULL(C.C, 0) END AS 剩余未分配
FROM 市级专项 AS a LEFT OUTER JOIN
yusuanxiada AS b ON a.项目名称 = b.年初市级专项 AND
a.项目名称> '0' LEFT OUTER JOIN
(SELECT 年初市级专项, SUM(补助金额) AS C
FROM yusuanxiada
GROUP BY 年初市级专项) AS C ON a.项目名称 = C.年初市级专项
能给出原因及解决方法吗?
A表:上级来款表zhuankuanlaikuan包括字段名: 上级文号, 来款项目, 科目编码, 科目名称, 来款金额, 资金分类,备注B表:预算下达表yusuanxiada包括字段名: 指标文号, 单位名称, 补助内容, 补助金额,上级文号要求:新列一张表看出上级来款的分配情况并求出剩余专款:
SQL语句:
SELECT a.上级文号, a.来款项目, a.科目编码, a.科目名称, a.来款金额, a.资金分类, a.备注, b.指标文号, b.单位名称, b.补助内容, b.补助金额,
CASE WHEN EXISTS
(SELECT 1
FROM yusuanxiada
WHERE 上级文号 = b.上级文号 AND 单位名称> b.单位名称 )
THEN NULL ELSE a.来款金额 - ISNULL(C.C , 0) END AS 剩余专款
FROM zhuankuanlaikuan AS a LEFT OUTER JOIN
yusuanxiada AS b ON a.上级文号 = b.上级文号 AND
a.上级文号 > '0' LEFT OUTER JOIN
(SELECT 上级文号, SUM(补助金额) AS C
FROM yusuanxiada
GROUP BY 上级文号) AS C ON a.上级文号 = C.上级文号
剩余专款能够得到正确的值。
二、C表:市级专项表 市级专项包括字段名: 项目名称,金额, 备注B表:预算下达表yusuanxiada包括字段名: 指标文号, 单位名称, 补助内容, 补助金额,上级文号,年初市级专项
要求:新列一张表看出市级专项的分配情况并求出未分配的市级专项: SQL语句: SELECT a.项目名称, a.金额, b.指标文号, b.单位名称, b.补助内容, b.补助金额, b.备注,
CASE WHEN EXISTS
(SELECT 1
FROM yusuanxiada
WHERE 项目名称 = b.年初市级专项 AND 单位名称 > b.单位名称)
THEN NULL ELSE a.金额 - ISNULL(C.C, 0) END AS 剩余未分配
FROM 市级专项 AS a LEFT OUTER JOIN
yusuanxiada AS b ON a.项目名称 = b.年初市级专项 AND
a.项目名称> '0' LEFT OUTER JOIN
(SELECT 年初市级专项, SUM(补助金额) AS C
FROM yusuanxiada
GROUP BY 年初市级专项) AS C ON a.项目名称 = C.年初市级专项 得到的结果是:能得到列出分配情况的新表,但剩余未分配里是空白,没有求出相应的余数。与第一项的基本结构是一样的,为什么这里求不出正确的余数?
请大家帮忙看一下!