SQL查询预支薪金盘点,结转月结余
Posted
技术标签:
【中文标题】SQL查询预支薪金盘点,结转月结余【英文标题】:SQL Query Advance Salary counting with carry forward of monthly balance 【发布时间】:2019-10-18 08:39:47 【问题描述】:我通过选择月份来显示所有月份结转的总余额 如果我选择了 3 月和以下月份
emp_id ==== bal_amt ==== Advance_sal ==== 日期 ==== basic_salary -------------------------------------------------- --------------- 1 48000 2000 2019-01-10 50000 1 46000 2000 2019-01-11 50000 2 78000 2000 2019-01-11 80000 2 75000 3000 2019-01-11 80000 1 49000 1000 2019-02-10 50000 2 74000 6000 2019-02-11 80000如果我选择 2 月,那么我希望选择每个 ID 的最后余额金额,其中总余额少于 2 月
请查看下方选定的行
emp_id ==== bal_amt ==== Advance_sal ==== 日期 ==== basic_salary -------------------------------------------------- --------------- 1 48000 2000 2019-01-10 50000 1 46000 2000 2019-01-11 50000 -- 选择 2 78000 2000 2019-01-11 80000 2 75000 3000 2019-01-11 80000 -- 选择 1 49000 1000 2019-02-10 50000 -- 选择 2 74000 6000 2019-02-11 80000 -- 选择SELECT *
FROM advance_sal x JOIN
(SELECT empp_id, max(id)
FROM advance_sal
WHERE empp_id = 1
AND MONTH(`ad_date`)<="2"
AND YEAR(`ad_date`)<="2019" group_by empp_id) y ON y.empp_id = x.empp_id
AND y.id = x.id
ORDER BY x.id
所以总的结果是
emp_id ==== bal_amt ==== Advance_sal ==== 日期 ==== basic_salary -------------------------------------------------- -------------- 1 46000 2000 2019-01-11 50000 2 75000 3000 2019-01-11 80000 1 49000 1000 2019-02-10 50000 2 74000 6000 2019-02-11 80000 emp_id ==== total_bal_amount 少于二月 -------------------------------------------------- -------------- 1 95000 2 149000任何帮助编写 sql 查询
【问题讨论】:
您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称(而且您的查询是无效的标准 SQL)。请为您正在使用的数据库产品添加tag 抱歉回复晚了。请您详细说明您的问题,我实际上没有得到我是新手。 【参考方案1】:我猜您需要以下查询。我不确定您如何从多个相同的日期确定您需要的最后一个余额,因为您的日期没有时间戳。
SELECT *, SUM(bal_amt) over(partition by emp_id) fROM (
SELECT emp_id, bal_amt, advance_sal, date, basic_salary, RN = Row_number() over(partition by emp_id order by date desc)
FROM advance_sal where
MONTH(`ad_date`)<="2"
AND YEAR(`ad_date`)<="2019" ) a where RN = 1
【讨论】:
抱歉回复晚了。此查询在手动检查分区附近时出错,您能告诉我准确的查询以获取数据吗 我不熟悉分区查询我的 mysql 版本是 5.6.36 我认为它不能在这个版本中运行以上是关于SQL查询预支薪金盘点,结转月结余的主要内容,如果未能解决你的问题,请参考以下文章