finance-SysSpendingMapper

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chinasoft.mybatis.dao.SysSpendingMapper">
<resultMap id="BaseResultMap" type="SysSpending">

</resultMap>





 <select id="selectSumTack" resultType="SysSpending">
   SELECT
   c.ex1 AS adminExpense,
   c.ex2 AS clientExpense,
   d.ex3 AS projectExpense
   FROM(
      SELECT a.*,b.*
      FROM (
        SELECT
        SUM(expense) AS ex1
        FROM
        sys_administration_expense   )
        AS a
        CROSS JOIN
       (SELECT SUM(expense) AS ex2
        FROM
        sys_client_expense) AS b
       WHERE 1=1
        ) AS c
         CROSS JOIN (
         SELECT SUM(expense) AS ex3
         FROM sys_project_expense ) AS d
        WHERE 1=1
 </select>


    <select id="selectTotal" resultType="java.lang.Double">
    SELECT
    e.admin_expense + e.client_expense + e.project_expense AS sumTotal
    FROM (
    SELECT
    c.ex1 AS admin_expense,
    c.ex2 AS client_expense,
    d.ex3 AS project_expense
    FROM(
    SELECT a.*,b.*
    FROM (
    SELECT
    SUM(expense) AS ex1
    FROM sys_administration_expense   ) AS a
    CROSS JOIN
   (SELECT SUM(expense) AS ex2
   FROM sys_client_expense) AS b
   WHERE 1=1
   ) AS c  CROSS JOIN (
   SELECT SUM(expense) AS ex3
   FROM sys_project_expense ) AS d
    WHERE 1=1) AS e
    </select>


    <select id="selectRunn" resultType="java.lang.Double">


SELECT
a.back_money-b.total AS runn
FROM (   SELECT
    SUM(b.back_money) AS back_money
   FROM
   (SELECT
   a.*
  FROM
    (SELECT
    clcobcl.* ,
    clcobcl.money-clcobcl.back_money AS left_money
    FROM
    (SELECT
    clcobc.id ,
    clcobc.number,
    clcobc.name,
    clcobc.type,
    clcobc.money,
    clcobc.create_name,
    clcobc.create_time,
    clcobc.associated_customers,
    clcobc.contract_no,
    clcobc.back_money_state,
    SUM(clcobc.back_money) AS back_money
    FROM
    (SELECT
    clco.id ,
    clco.number,
    clco.name,
    clco.type,
    clco.money,
    clco.create_name,
    clco.create_time,
    clco.associated_customers,
    bm.contract_no,
    bm.back_money_state,
    IF(bm.back_money_state = 1,bm.back_money,0) AS back_money
    FROM
    (SELECT DISTINCT
    con.id ,
    con.number,
    con.name,
    con.type,
    con.money,
    con.create_name,
    con.create_time,
    sc.name AS associated_customers
    FROM
    sys_contract AS con
    LEFT JOIN
    sys_client AS sc
    ON
    sc.name = con.associated_customers) AS clco
    LEFT JOIN
    sys_back_money AS bm
    ON
    clco.number = bm.contract_no) AS clcobc
    GROUP BY
    clcobc.number) AS clcobcl) AS a
    LEFT JOIN
    sys_project_expense AS spe
    ON
    a.number = spe.contract_number
    GROUP BY a.number) AS b) a

    CROSS JOIN
    ( SELECT
    e.admin_expense + e.client_expense + e.project_expense AS total
    FROM (
    SELECT
    c.ex1 AS admin_expense,
    c.ex2 AS client_expense,
    d.ex3 AS project_expense
    FROM(
     SELECT
     a.*,b.*
     FROM (
     SELECT
     SUM(expense) AS ex1
     FROM sys_administration_expense   ) AS a
      CROSS JOIN
    (SELECT SUM(expense) AS ex2
    FROM sys_client_expense) AS b
    WHERE 1=1
    ) AS c
    CROSS JOIN (
    SELECT SUM(expense) AS ex3
    FROM sys_project_expense ) AS d
    WHERE 1=1) AS e)AS b
    WHERE 1=1
    </select>
</mapper>

猜你喜欢

转载自blog.csdn.net/qq_29380733/article/details/86291461