找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] SQLITE视图写法

cg6207 悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-6 21:38  /   查看:1910  /  回复:9
想达到下列效果


主表是


子表是


视图是

SELECT ID,项目,金额,
(IFNULL((SELECT SUM("交款金额") FROM "应收款_明细" WHERE "应收款".ID = "应收款_明细".应收款_ID AND "应收款_明细".交款方式 = "银行代扣"),0)) 银行代扣,
(IFNULL((SELECT SUM("交款金额") FROM "应收款_明细" WHERE "应收款".ID = "应收款_明细".应收款_ID AND "应收款_明细".交款方式 = "现金"),0)) 现金,
(IFNULL((SELECT SUM("交款金额") FROM "应收款_明细" WHERE "应收款".ID = "应收款_明细".应收款_ID AND "应收款_明细".交款方式 = "二维码"),0)) 二维码
FROM "应收款";


数据少还好,但是我实际生产中的表,每个表都是几十万条数据
这样一写进去,直接死机。

我知道是SQLITE语句写的很差,求高手指导。

DEMO文件如下:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

9 个回复

倒序浏览
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-6 21:46:46
沙发
我想用left join 配合 sum 和 group by ,应该性能就好了
一直报错。。。。语法不过关,我也是没有办法了。。。所以求教高手
回复 使用道具 举报
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-7 14:11:35
板凳
莫有人么?
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2018-12-7 18:35:05
地板
您好,这边帮您想想解决办法哈~
回复 使用道具 举报
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-11 14:21:45
5#
又沉了。。。。
回复 使用道具 举报
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-11 14:23:26
6#
怎么变成已处理了?
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2018-12-11 14:51:11
7#
cg6207 发表于 2018-12-11 14:23
怎么变成已处理了?

好像是我手滑分类分错了,帖子太多都晕乎了,不好意思呀
回复 使用道具 举报
lijetcart悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-11 15:17:26
8#
金币给来,我还差一点可以搞张卡
回复 使用道具 举报
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2018-12-11 15:19:42
9#
本帖最后由 cg6207 于 2018-12-11 15:21 编辑

通过2018年12月09日 蜀格小组研究会大家的热烈讨论
在lijetcart的思路下,使用SUM CASE WHEN THEN END配合,终于实现了这个需求。
视图如下

WITH CTE1 AS (SELECT 应收款_ID,
SUM(CASE WHEN 交款方式 = "银行代扣" THEN 交款金额 ELSE 0 END) AS 银行代扣,
SUM(CASE WHEN 交款方式 = "现金" THEN 交款金额 ELSE 0 END) AS 现金,
SUM(CASE WHEN 交款方式 = "二维码" THEN 交款金额 ELSE 0 END) AS 二维码
FROM "应收款_明细" GROUP BY 应收款_ID)

SELECT "应收款".ID,"应收款".金额,CTE1.* FROM "应收款"
LEFT JOIN CTE1
ON "应收款".ID = CTE1.应收款_ID


效果如图


附蜀格小组当天研讨会图片。

附DEMO


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +200 收起 理由
Tracy.Liu + 200 很给力!

查看全部评分

回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2018-12-11 16:48:49
10#
太厉害了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部