-
Notifications
You must be signed in to change notification settings - Fork 863
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
自动分表求和生成了多个结构,没有把结果相加。 #1115
Comments
目前自动分表,多表查询,聚合查询是测试盲区。 主要针对单表,特定的查询有效。 |
这个有没好的办法解决下 |
我尝试解决一下,有结果了回复 |
ToAggregate 新版本会翻译成这样执行: SELECT sum(ftba."click") as1, count(1) as2, avg(ftba."click") as3, min(ftba."click") as4, max(ftba."click") as5 FROM (
SELECT * from (SELECT a."click"
FROM "as_table_log_202204" a
WHERE (a."createtime" < '2022-05-01 00:00:00')) ftb
UNION ALL
SELECT * from (SELECT a."click"
FROM "as_table_log_202203" a
WHERE (a."createtime" < '2022-05-01 00:00:00')) ftb
UNION ALL
SELECT * from (SELECT a."click"
FROM "as_table_log_202202" a
WHERE (a."createtime" < '2022-05-01 00:00:00')) ftb
UNION ALL
SELECT * from (SELECT a."click"
FROM "as_table_log_202201" a
WHERE (a."createtime" < '2022-05-01 00:00:00')) ftb
) ftba |
2881099
added a commit
that referenced
this issue
May 24, 2022
帮发个版本,谢谢 |
2881099
added a commit
that referenced
this issue
May 24, 2022
v3.2.650-preview20220526 |
nuget 搜不到 v3.2.650-preview20220526 版本。 |
nuget 抽风,两个多小时还没成功,发布了v3.2.651 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
版本 3.2.650-preview20220515
oracle 11g 数据库
代码
var q = _workSaleRepository.Select
.From<GOODSDOC, BUSINESSDOC>((a, b, c) => a.LeftJoin(z => z.GOODSID == b.GOODSID && z.ENTID == b.ENTID)
.LeftJoin(z => z.CLIENTID == c.BusinessId && z.ENTID == c.EntId))
.Where((x, a, b) => x.DATETIME >= beg && x.DATETIME < end)
.ToAggregate((x, b, c) => new
{
total = x.Count(),
totalNum = x.Sum(x.Key.NUM),
totalAmount = x.Sum(x.Key.TAXAMOUNT),
});
生成的语句如下
SELECT * from (SELECT count(1) as1, sum(a."NUM") as2, sum(a."TAXAMOUNT") as3
FROM "WORK_SA_202106" a
LEFT JOIN "VIW_GOODSDOC" b ON a."GOODSID" = b."GOODSID" AND a."ENTID" = b."ENTID"
LEFT JOIN "VIW_BUSINESSDOC" c ON a."CLIENTID" = c."BUSINESSID" AND a."ENTID" = c."ENTID"
WHERE (a."DATETIME" >= to_timestamp('2021-03-01 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6') AND a."DATETIME" < to_timestamp('2021-06-06 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6'))) ftb
UNION ALL
SELECT * from (SELECT count(1) as1, sum(a."NUM") as2, sum(a."TAXAMOUNT") as3
FROM "WORK_SA_202105" a
LEFT JOIN "VIW_GOODSDOC" b ON a."GOODSID" = b."GOODSID" AND a."ENTID" = b."ENTID"
LEFT JOIN "VIW_BUSINESSDOC" c ON a."CLIENTID" = c."BUSINESSID" AND a."ENTID" = c."ENTID"
WHERE (a."DATETIME" >= to_timestamp('2021-03-01 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6') AND a."DATETIME" < to_timestamp('2021-06-06 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6'))) ftb
UNION ALL
SELECT * from (SELECT count(1) as1, sum(a."NUM") as2, sum(a."TAXAMOUNT") as3
FROM "WORK_SA_202104" a
LEFT JOIN "VIW_GOODSDOC" b ON a."GOODSID" = b."GOODSID" AND a."ENTID" = b."ENTID"
LEFT JOIN "VIW_BUSINESSDOC" c ON a."CLIENTID" = c."BUSINESSID" AND a."ENTID" = c."ENTID"
WHERE (a."DATETIME" >= to_timestamp('2021-03-01 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6') AND a."DATETIME" < to_timestamp('2021-06-06 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6'))) ftb
UNION ALL
SELECT * from (SELECT count(1) as1, sum(a."NUM") as2, sum(a."TAXAMOUNT") as3
![image](https://user-images.githubusercontent.com/36889438/169851805-4de2e11a-318c-49f5-a2b6-837322ee341c.png)
FROM "WORK_SA_202103" a
LEFT JOIN "VIW_GOODSDOC" b ON a."GOODSID" = b."GOODSID" AND a."ENTID" = b."ENTID"
LEFT JOIN "VIW_BUSINESSDOC" c ON a."CLIENTID" = c."BUSINESSID" AND a."ENTID" = c."ENTID"
WHERE (a."DATETIME" >= to_timestamp('2021-03-01 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6') AND a."DATETIME" < to_timestamp('2021-06-06 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6'))) ftb
下图是plsql语句的结果,变成了四条记录
The text was updated successfully, but these errors were encountered: