请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

花火
金牌服务用户   /  发表于:2025-3-5 10:39  /   查看:141  /  回复:8
50金币
分别有:订单,出货,差异调整,对账,开票,收款   六张数据表,每张表里都有客户ID、币种ID、税ID三个字段,想要将六张表的数据通过这三个字段的不同用sql语句汇总到一张表里,汇总表的格式如下,还请不吝告知,感谢!


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

8 个回复

倒序浏览
小萝卜David
金牌服务用户   /  发表于:2025-3-5 11:00:17
沙发
问AI。
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-3-5 14:07:00
板凳
您好,这边的思路是从上述六张表查询需要的数据,然后做 Union,每个表格列出自己对于的金额,其余金额设置为 0。

然后针对上述汇总结果做分组汇总。我做了两张表的,以供参考。

说实话,这边对 SQL 也不是很擅长,上面方案可能也不正确。
就像格友大佬说所的,您可以借助  AI 去实现 SQL,AI 在这方面应该挺擅长的。把目前的表结构和想要的结构给 AI,AI 会帮您生成想要的 SQL。
如果您关注了活字格 11 版本,可以直接在设计器里把您的描述说明下,设计器会自动给你创建好对应的视图。您也可以体验下新版本。

活字格11新功能解密:二、AI   基础篇
https://gcdn.grapecity.com.cn/showtopic-233399-1-1.html
(出处: 葡萄城开发者社区)


本帖子中包含更多资源

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

x
回复 使用道具 举报
花火
金牌服务用户   /  发表于:2025-3-7 15:41:26
地板
Simon.Sun 发表于 2025-3-5 14:07
您好,这边的思路是从上述六张表查询需要的数据,然后做 Union,每个表格列出自己对于的金额,其余金额设置 ...

可以再帮忙讲解一下sql语句中a.   b.   c.  分别是什么意思吗?因为我还需要把其他表的逻辑加进去,看不明白不知道怎么加。

或者除了sql语句,还有可以实现这张汇总表的其他方法吗?
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2025-3-7 15:49:02
5#
写SQL 应该是最优解 , 其他方法也能搞,估计都会比写SQL麻烦
回复 使用道具 举报
丁果
初级会员   /  发表于:2025-3-7 16:14:15
6#
看了一下demo,客户id和币种,税要是不固定,建议使用存储过程来处理,或者使用活字格内部的sql语句直接传参查询
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-3-7 17:14:34
7#
a,b,c 是给表命的别名:

有别名后,可以用 a."字段名" 获取到对应表的列。

本帖子中包含更多资源

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

x
回复 使用道具 举报
花火
金牌服务用户   /  发表于:2025-3-11 10:50:42
8#
Simon.Sun 发表于 2025-3-7 17:14
a,b,c 是给表命的别名:

有别名后,可以用 a."字段名" 获取到对应表的列。

sql语句的用法在活字格内置库里和mysql数据库里是不是不一样啊,按照这个方法,在mysql数据库里就运行不了
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-3-11 16:06:26
9#
您好,MySQL 和 SQLite 有些方言不一样,就那上面 SQL 来说:
select
  d.`客户ID`,
  d.`币种`,
  d.`税`,
  sum(d.`订单金额`) as `订单总金额`,
  sum(d.`出货金额`) as `出货总金额`
from
  (
    SELECT
      b.客户ID,
      b.`币种`,
      a.`税`,
      a.`单价` * a.`数量` as `订单金额`,
      0 as 出货金额
    FROM
      `销售订单详情` as a
      left join `销售订单` as b on a.`销售订单ID` = b.`ID`
    union ALL
    SELECT
      c.`客户ID`,
      c.`币种`,
      b.`税`,
      0 as `订单金额`,
      a.`出货数量` * b.`单价` as 出货金额
    FROM
      `销售出货记录` as a
      left join `销售订单详情` as b on a.`销售订单详情ID` = b.`ID`
      left join `销售订单` as c on b.`销售订单ID` = c.`ID`
  ) as d
group by
  `客户ID`,
  `币种`,
  `税`

需要调整程上面那样,双引号修改为反引号,给表其别名。
您可以参考下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部