我写了一个简化版,你试试如何?我初步测试没问题。结构肯定是这个简洁,不过性能很难说,你的应当快一些。你的思路不错,交个朋友如何?[email protected] SELECT ROW_ID AS ID, ROW_DATE_TIME AS 日期, SUM(COST) AS 成本, SUM(CHARGE) AS 费用 FROM( SELECT ISNULL(A.ID, B.ID) AS ROW_ID, YEAR(ISNULL(A.日期, B.日期)) AS ROW_DATE_TIME, A.成本 AS COST, B.费用AS CHARGE FROM COST FULL JOIN CHARGE ON A.ID = B.ID AND A.日期 = B.日期) AS DATA GROUP BY ROW_ID, ROW_DATE_TIME
我写了一个简化版,你试试如何?我初步测试没问题。结构肯定是这个简洁,不过性能很难说,你的应当快一些。你的思路不错,交个朋友如何? [email protected],刚才的语句有点笔误,现在改过 SELECT ROW_ID AS ID, ROW_DATE_TIME AS 日期, SUM(COST) AS 成本, SUM(CHARGE) AS 费用 FROM( SELECT ISNULL(A.ID, B.ID) AS ROW_ID, CONVERT(CHAR(6), ISNULL(A.日期, B.日期), 112) AS ROW_DATE_TIME, A.成本 AS COST, B.费用AS CHARGE FROM COST FULL JOIN CHARGE ON A.ID = B.ID AND A.日期 = B.日期) AS DATA GROUP BY ROW_ID, ROW_DATE_TIME
SELECT ROW_ID AS ID, ROW_DATE_TIME AS 日期, SUM(COST) AS 成本, SUM(CHARGE) AS 费用
FROM(
SELECT ISNULL(A.ID, B.ID) AS ROW_ID,
YEAR(ISNULL(A.日期, B.日期)) AS ROW_DATE_TIME,
A.成本 AS COST,
B.费用AS CHARGE
FROM COST
FULL JOIN CHARGE
ON A.ID = B.ID AND A.日期 = B.日期) AS DATA
GROUP BY ROW_ID, ROW_DATE_TIME
[email protected],刚才的语句有点笔误,现在改过
SELECT ROW_ID AS ID, ROW_DATE_TIME AS 日期, SUM(COST) AS 成本, SUM(CHARGE) AS 费用
FROM(
SELECT ISNULL(A.ID, B.ID) AS ROW_ID,
CONVERT(CHAR(6), ISNULL(A.日期, B.日期), 112) AS ROW_DATE_TIME,
A.成本 AS COST,
B.费用AS CHARGE
FROM COST
FULL JOIN CHARGE
ON A.ID = B.ID AND A.日期 = B.日期) AS DATA
GROUP BY ROW_ID, ROW_DATE_TIME