Commit 0ebf49f8 by wukaiqiang

调整统计SQL格式,增加group by条件参数

parent 214db6af
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
WHERE WHERE
( salesSummary.dealTime >= :?startDate AND salesSummary.dealTime <= :?endDate ) ( salesSummary.dealTime >= :?startDate AND salesSummary.dealTime <= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
ORDER BY ORDER BY :?totalGroupBy , :?subtotalGroupBy ,
stationName stationName
</sql> </sql>
</template> </template>
......
...@@ -11,51 +11,51 @@ ...@@ -11,51 +11,51 @@
<template> <template>
<sql-type>SQL</sql-type> <sql-type>SQL</sql-type>
<sql> <sql>
SELECT SELECT
station.stationName AS stationName, station.stationName AS stationName,
dinasType.dinasTypeName AS dinasTypeName, dinasType.dinasTypeName AS dinasTypeName,
( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount, ( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount,
( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount ( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount
FROM FROM
SalesSummary AS salesSummary SalesSummary AS salesSummary
LEFT JOIN Station AS station ON station.id = salesSummary.station LEFT JOIN Station AS station ON station.id = salesSummary.station
LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType
WHERE WHERE
( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate ) ( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
GROUP BY GROUP BY
salesSummary.station, salesSummary.station,
salesSummary.dinasType salesSummary.dinasType
UNION ALL UNION ALL
SELECT SELECT
station.stationName AS stationName, station.stationName AS stationName,
'小计' AS dinasTypeName, '小计' AS dinasTypeName,
( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount, ( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount,
( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount ( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount
FROM FROM
SalesSummary AS salesSummary SalesSummary AS salesSummary
LEFT JOIN Station AS station ON station.id = salesSummary.station LEFT JOIN Station AS station ON station.id = salesSummary.station
LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType
WHERE WHERE
( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate ) ( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
GROUP BY GROUP BY
salesSummary.station salesSummary.station
UNION ALL UNION ALL
SELECT SELECT
'总计' AS stationName, '总计' AS stationName,
'———' AS dinasTypeName, '———' AS dinasTypeName,
( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount, ( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount,
( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount ( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount
FROM FROM
SalesSummary AS salesSummary SalesSummary AS salesSummary
LEFT JOIN Station AS station ON station.id = salesSummary.station LEFT JOIN Station AS station ON station.id = salesSummary.station
LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType
WHERE WHERE
( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate ) ( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
ORDER BY ORDER BY :?totalGroupBy , :?subtotalGroupBy ,
stationName stationName
</sql> </sql>
</template> </template>
</content> </content>
......
...@@ -10,83 +10,89 @@ ...@@ -10,83 +10,89 @@
<content> <content>
<template> <template>
<sql-type>SQL</sql-type> <sql-type>SQL</sql-type>
<sql> <sql>
SELECT SELECT
artificialRecharge.id as id, financeRefund.id AS id,
artificialRecharge.createTime AS createTime, financeRefund.createTime AS createTime,
purchaseSandCompanyon.name AS purchaseSandUnit, purchaseSandCompanyon.NAME AS purchaseSandUnit,
projectFiled.projectName AS project, projectFiled.projectName AS project,
CASE CASE
WHEN artificialRecharge.fundType ='DEPOSIT' then '保证金充值'
ELSE '预付款充值' WHEN financeRefund.fundType = 1 THEN
END '保证金退费' ELSE '预付款退费'
as fundType, END AS fundType,
artificialRecharge.rechargeAmount AS rechargeAmount, '-' AS rechargeAmount,
'-' AS actualRefundAmount, financeRefund.actualRefundAmount AS actualRefundAmount,
artificialRecharge.remark AS remark financeRefund.refundExplain AS remark
FROM FROM
ArtificialRecharge as artificialRecharge FinanceRefund AS financeRefund
LEFT JOIN PurchaseSandCompany as purchaseSandCompanyon on purchaseSandCompanyon.id = artificialRecharge.purchaseSandUnit LEFT JOIN PurchaseSandCompany AS purchaseSandCompanyon ON purchaseSandCompanyon.id = financeRefund.purchaseSandCompany
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = artificialRecharge.project LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = financeRefund.project
WHERE artificialRecharge.regionalCompany = :?regionalCompanyId WHERE
AND (artificialRecharge.createTime &gt;= :?startDate AND artificialRecharge.createTime &lt;= :?endDate) financeRefund.regionalCompany = :?regionalCompanyId
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName AND ( financeRefund.createTime &gt;= :?startDate AND financeRefund.createTime &lt;= :?endDate )
AND projectFiled.projectName LIKE :?projectName AND purchaseSandCompanyon.NAME LIKE :?purchaseSandCompanyonName
AND artificialRecharge.fundType = :?fundType AND projectFiled.projectName LIKE :?projectName
UNION ALL AND ( CASE WHEN 'DEPOSIT' = :?fundType THEN '1' ELSE '0' END ) = financeRefund.fundType
SELECT UNION ALL
expenseAdjust.id as id, SELECT
expenseAdjust.createTime AS createTime, artificialRecharge.id AS id,
purchaseSandCompanyon.name AS purchaseSandUnit, artificialRecharge.createTime AS createTime,
projectFiled.projectName AS project, purchaseSandCompanyon.NAME AS purchaseSandUnit,
CASE projectFiled.projectName AS project,
WHEN expenseAdjust.fundType ='DEPOSIT' then '保证金费用调整' CASE
ELSE '预付款费用调整'
END WHEN artificialRecharge.fundType = 'DEPOSIT' THEN
as fundType, '保证金充值' ELSE '预付款充值'
CASE END AS fundType,
WHEN expenseAdjust.expenseAdjustAmount &gt;= '0' THEN artificialRecharge.rechargeAmount AS rechargeAmount,
expenseAdjust.expenseAdjustAmount ELSE '-' '-' AS actualRefundAmount,
END AS expenseAdjustAmount, artificialRecharge.remark AS remark
CASE FROM
WHEN expenseAdjust.expenseAdjustAmount &lt; '0' ArtificialRecharge AS artificialRecharge
THEN (- expenseAdjust.expenseAdjustAmount) ELSE '-' LEFT JOIN PurchaseSandCompany AS purchaseSandCompanyon ON purchaseSandCompanyon.id = artificialRecharge.purchaseSandUnit
END AS actualRefundAmount, LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = artificialRecharge.project
expenseAdjust.remark AS remark WHERE
FROM artificialRecharge.regionalCompany = :?regionalCompanyId
ExpenseAdjust as expenseAdjust AND ( artificialRecharge.createTime &gt;= :?startDate AND artificialRecharge.createTime &lt;= :?endDate )
LEFT JOIN PurchaseSandCompany as purchaseSandCompanyon on purchaseSandCompanyon.id = expenseAdjust.purchaseSandUnit AND purchaseSandCompanyon.NAME LIKE :?purchaseSandCompanyonName
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = expenseAdjust.project AND projectFiled.projectName LIKE :?projectName
WHERE expenseAdjust.regionalCompany = :?regionalCompanyId AND artificialRecharge.fundType = :?fundType
AND (expenseAdjust.createTime &gt;= :?startDate AND expenseAdjust.createTime &lt;= :?endDate) UNION ALL
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName SELECT
AND projectFiled.projectName LIKE :?projectName expenseAdjust.id AS id,
AND expenseAdjust.fundType = :?fundType expenseAdjust.createTime AS createTime,
UNION ALL purchaseSandCompanyon.NAME AS purchaseSandUnit,
SELECT projectFiled.projectName AS project,
financeRefund.id as id, CASE
financeRefund.createTime AS createTime,
purchaseSandCompanyon.name AS purchaseSandUnit, WHEN expenseAdjust.fundType = 'DEPOSIT' THEN
projectFiled.projectName AS project, '保证金费用调整' ELSE '预付款费用调整'
CASE END AS fundType,
WHEN financeRefund.fundType ='1' THEN '保证金退费' CASE
ELSE '预付款退费'
END WHEN expenseAdjust.expenseAdjustAmount &gt;= '0' THEN
as fundType, expenseAdjust.expenseAdjustAmount ELSE '-'
'-' AS rechargeAmount, END AS rechargeAmount,
financeRefund.actualRefundAmount AS actualRefundAmount, CASE
financeRefund.refundExplain AS remark
FROM WHEN expenseAdjust.expenseAdjustAmount &lt;
FinanceRefund as financeRefund '0' THEN
LEFT JOIN PurchaseSandCompany as purchaseSandCompanyon on purchaseSandCompanyon.id = financeRefund.purchaseSandCompany ( - expenseAdjust.expenseAdjustAmount ) ELSE '-'
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = financeRefund.project END AS actualRefundAmount,
WHERE financeRefund.regionalCompany = :?regionalCompanyId expenseAdjust.remark AS remark
AND (financeRefund.createTime &gt;= :?startDate AND financeRefund.createTime &lt;= :?endDate) FROM
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName ExpenseAdjust AS expenseAdjust
AND projectFiled.projectName LIKE :?projectName LEFT JOIN PurchaseSandCompany AS purchaseSandCompanyon ON purchaseSandCompanyon.id = expenseAdjust.purchaseSandUnit
AND ( case when 'DEPOSIT' = :?fundType then '1' else '0' end ) = financeRefund.fundType LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = expenseAdjust.project
ORDER BY createTime DESC WHERE
</sql> expenseAdjust.regionalCompany = :?regionalCompanyId
AND ( expenseAdjust.createTime &gt;= :?startDate AND expenseAdjust.createTime &lt;= :?endDate )
AND purchaseSandCompanyon.NAME LIKE :?purchaseSandCompanyonName
AND projectFiled.projectName LIKE :?projectName
AND expenseAdjust.fundType = :?fundType
ORDER BY createTime DESC
</sql>
</template> </template>
</content> </content>
</metadata> </metadata>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment