abcdefg0099 发表于 2024-6-20 22:46:05

求一个1主2子表 视图

采购入库主表,
采购入库子表(绑定主表id),
采购入库付款表(绑定主表id)


我想查询
1 采购入库子表绑定主表id 计算总金额

2采购入库付款表绑定主表id 已付款如果没有则为空或者0

3计算 采购入库子表的总金额-   已付款金额

这个视图想这样显示4个字段    主表id , 采购入库子表的计算,已付款金额计算   ,    采购入库子表的总金额-   已付款金额

Syl 发表于 2024-6-20 22:46:06

本帖最后由 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

successit 发表于 2024-6-21 08:00:09

你这个需求,其实用活字格自带的统计字段,在页面中也可以直接实现的,视图也写了个,你可以参考下

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:18:29

本帖最后由 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


Syl 发表于 2024-6-21 09:46:28

给个demo我试试

abcdefg0099 发表于 2024-6-21 09:49:34

zhegeshi demo

abcdefg0099 发表于 2024-6-21 14:56:20

本帖最后由 abcdefg0099 于 2024-6-21 15:52 编辑

Syl 发表于 2024-6-21 10:54
select "采购入库主表".ID,"商品金额","已付款金额", "商品金额"-"已付款金额" AS 未付款 FROM "采购入库 ...大佬新增的单子 视图不会计算


abcdefg0099 发表于 2024-6-21 16:06:58

Syl 发表于 2024-6-21 10:54
select "采购入库主表".ID,"商品金额","已付款金额", "商品金额"-"已付款金额" AS 未付款 FROM "采购入库 ...

LEFT JOIN 用这个语句能显示了

Syl 发表于 2024-6-21 16:16:12

abcdefg0099 发表于 2024-6-21 16:06
LEFT JOIN 用这个语句能显示了

:hjyzw:

abcdefg0099 发表于 2024-6-21 16:27:49

Syl 发表于 2024-6-21 16:16


还是大佬厉害
页: [1] 2
查看完整版本: 求一个1主2子表 视图