求一个1主2子表 视图
采购入库主表,采购入库子表(绑定主表id),
采购入库付款表(绑定主表id)
我想查询
1 采购入库子表绑定主表id 计算总金额
2采购入库付款表绑定主表id 已付款如果没有则为空或者0
3计算 采购入库子表的总金额- 已付款金额
这个视图想这样显示4个字段 主表id , 采购入库子表的计算,已付款金额计算 , 采购入库子表的总金额- 已付款金额
本帖最后由 Syl 于 2024-6-21 10:55 编辑
abcdefg0099 发表于 2024-6-21 09:49
zhegeshi demo
select "采购入库主表".ID,"商品金额","已付款金额", "商品金额"-"已付款金额" AS 未付款 FROM "采购入库主表"
JOIN (SELECT "采购入库主表id" AS RKZID ,SUM("商品金额") AS "商品金额" FROM "采购入库子表"
GROUP BY "采购入库子表"."采购入库主表id") AS AA ON "采购入库主表".ID=RKZID
JOIN (SELECT "采购入库主表id"AS FKZID,SUM("已付款金额") AS "已付款金额" FROM "采购入库付款子表"GROUP BY "采购入库主表id")AS BB
ON "采购入库主表"."ID"=FKZID
你这个需求,其实用活字格自带的统计字段,在页面中也可以直接实现的,视图也写了个,你可以参考下
WITH 入库 AS
(
SELECT 主表ID,SUM(金额) AS入库金额 FROM 采购入库子表 GROUP BY 主表ID
),
付款 AS
(
SELECT 主表ID,SUM(金额) AS付款金额 FROM 采购入库付款表 GROUP BY 主表ID
)
SELECT
T.ID AS 主表ID,
ISNULL(T1.入库金额,0) AS 入库金额,
ISNULL(T2.付款金额,0) AS 付款金额,
ISNULL(T1.入库金额,0) - ISNULL(T2.付款金额,0) AS 未付金额
FROM 采购入库主表 T
LEFT JOIN 入库 T1 ON T1.主表ID = T.ID
LEFT JOIN 付款 T2 ON T2.主表ID = T.ID 本帖最后由 abcdefg0099 于 2024-6-21 09:38 编辑
successit 发表于 2024-6-21 08:00
你这个需求,其实用活字格自带的统计字段,在页面中也可以直接实现的,视图也写了个,你可以参考下
我的是自带数据库的视图,按照你的写法不行
WITH 入库 AS
(
SELECT "采购入库主表id",SUM(金额) AS入库金额 FROM "采购入库子表" GROUP BY "采购入库主表id"
),
付款 AS
(
SELECT "采购入库主表id",SUM(金额) AS付款金额 FROM "采购入库付款子表" GROUP BY "采购入库主表id"
)
SELECT
T.ID AS "ID",
ISNULL(T1.入库金额,0) AS 入库金额,
ISNULL(T2.付款金额,0) AS 付款金额,
ISNULL(T1.入库金额,0) - ISNULL(T2.付款金额,0) AS 未付金额
FROM "采购入库主表" T
LEFT JOIN 入库 T1 ON T1."ID" = T.ID
LEFT JOIN 付款 T2 ON T2."ID" = T.ID
给个demo我试试
zhegeshi demo 本帖最后由 abcdefg0099 于 2024-6-21 15:52 编辑
Syl 发表于 2024-6-21 10:54
select "采购入库主表".ID,"商品金额","已付款金额", "商品金额"-"已付款金额" AS 未付款 FROM "采购入库 ...大佬新增的单子 视图不会计算
Syl 发表于 2024-6-21 10:54
select "采购入库主表".ID,"商品金额","已付款金额", "商品金额"-"已付款金额" AS 未付款 FROM "采购入库 ...
LEFT JOIN 用这个语句能显示了 abcdefg0099 发表于 2024-6-21 16:06
LEFT JOIN 用这个语句能显示了
:hjyzw: Syl 发表于 2024-6-21 16:16
还是大佬厉害
页:
[1]
2