我有一个 Service
表和a Payments
table。我希望我的客户能够为一项服务支付多笔款项,但当我试图创建一个支付表单时,我无法进行支付
"ServiceA"."Cost" - SUM("Payment"."Amount")
``` `substraction` 在我的 `SELECT` 显示剩余支付金额的查询。有人告诉我 `Strings cannot be added or subtracted in dialect 3` 即使所有相关的字段都是数字,小数点的数量都是一样的。。。
你知道我做错了什么吗?
编辑:更多细节。相关表格如下: `ServiceA` , `ServiceB` , `ServiceC` , `ServiceD` 都有一个数字字段 `Cost` . 它们的主键实际上是外键-它们都与 `auto_increment BIGINT` 表中的字段 `For` . 这是为了给他们 `auto_incrementing` ,但不重复ID。
有一张table `PS` (代表 `Payment-Service` )用作多重关系的中间表。它有两个外键-一个来自 `Payments` 一个来自 `For` . 这使我可以选择为一项服务进行多次付款,或一次付款涵盖多项服务。
此外,每 `Service` 表中有一个引用“clients”中的客户机id的字段。
在我的 `SELECT` ,我尝试执行以下操作:
SELECT "Clients"."Name" || ': ' || "ServiceA"."Name" || ' for ' || "ServiceA"."Cost" - SUM("Payments"."Amount") AS "To-Pay", "ID-Name" AS "ID"
FROM "ServiceA"
LEFT OUTER JOIN "Clients" ON "ServiceA"."Client" = "Clients"."ID-Client"
INNER JOIN "For" ON "ServiceA"."Id-ServA" = "For"."ID"
LEFT OUTER JOIN "PS" ON "For"."ID" = "PS"."For"
LEFT OUTER JOIN "Payments" ON "PS"."Payment" = "Payments"."For"
GROUP BY "To-Pay, "ID"
HAVING "PS"."Payment" IS NULL OR**SUM("Payments"."Amount") < "ServiceA"."Cost"
UNION ALL
(like the above but with other "Service" tables)
ORDER BY "To-Pay"
这是一个下拉列表中的 `Create Payment` 形式。看起来问题的部分是粗体的。
1条答案
按热度按时间idfiyjo81#
试着改变这个
为了这个
或将其转换为特定类型