dotnetcore / dotnetcore/FreeSql
求教大老,postgresql 这样的语句 用 feesql 怎么写来
- Dominant language
- C#
- Stars
- 4.4k
- Forks
- 910
- PR merge metrics
- No merged PRs in 30d
Description
WITH filtered_orders AS (
-- 合并所有月份的数据并筛选条件
SELECT * FROM "erp_order_202501" WHERE EXTRACT(YEAR FROM "created_time") = 2025 AND "category_code" LIKE '13%' AND "output_qty" <> 0
UNION ALL
SELECT * FROM "erp_order_202502" WHERE EXTRACT(YEAR FROM "created_time") = 2025 AND "category_code" LIKE '13%' AND "output_qty" <> 0
UNION ALL
SELECT * FROM "erp_order_202503" WHERE EXTRACT(YEAR FROM "created_time") = 2025 AND "category_code" LIKE '13%' AND "output_qty" <> 0
UNION ALL
SELECT * FROM "erp_order_202504" WHERE EXTRACT(YEAR FROM "created_time") = 2025 AND "category_code" LIKE '13%' AND "output_qty" <> 0
UNION ALL
SELECT * FROM "erp_order_202505" WHERE EXTRACT(YEAR FROM "created_time") = 2025 AND "category_code" LIKE '13%' AND "output_qty" <> 0
UNION ALL
SELECT * FROM "erp_order_202506" WHERE EXTRACT(YEAR FROM "created_time") = 2025 AND "category_code" LIKE '13%' AND "output_qty" <> 0
),
ranked_orders AS (
-- 为每个商品的记录按时间排序
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY "goods_code" ORDER BY "created_time" DESC) AS rn
FROM filtered_orders
)
-- 主查询:获取每个商品的最新记录并聚合结果
SELECT
r."goods_code" AS as1,
MAX(r."goods_name") AS as2, -- 商品名称(可直接取最新记录的名称)
r."balance_qty" AS as3, -- 最新时间的结存数量
SUM(f."output_qty") AS as4 -- 总出库数量
FROM ranked_orders r
JOIN filtered_orders f ON r."goods_code" = f."goods_code"
WHERE r.rn = 1 -- 只取每个商品的最新记录
GROUP BY r."goods_code", r."balance_qty"
ORDER BY SUM(f."output_qty") DESC
LIMIT 10; 求教大老,postgresql 这样的语句 用 feesql 怎么写来
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.