我有一个SQL Server 2008表,我需要从中选择一个运行余额
TransDate Credit Debit Datasource
------------------------------------------
2014-01-01 5000 NULL 3
2014-01-07 NULL 2000 3
2014-01-11 5000 NULL 3
2014-02-03 6000 NULL 4
2014-02-06 NULL 4000 4
2014-02-11 3000 NULL 4
2014-02-21 NULL 1000 3
2014-02-28 2000 NULL 3
2014-03-01 5000 NULL 3
我尝试了相关查询
Select
t.TransDate,
t.Credit,
t.Debit,
(Select sum(coalesce(x.credit, 0) - coalesce(x.debit, 0))
From Transactions x
WHERE x.DataSource IN (3,4) AND (x.TransDate >= '2014/02/01' AND x.TransDate <= '2014/02/28' )
AND x.TransDate = t.TransDate) Balance
From
Transactions t
但是我得到了所有的空值Balance
。
预期输出为
TransDate Credit Debit Balance
------------------------------------------
2014-01-11 NULL NULL 8000 <- opening balance
2014-02-03 6000 NULL 14000
2014-02-06 NULL 4000 10000
2014-02-11 3000 NULL 13000
2014-02-21 NULL 1000 12000
2014-02-28 2000 NULL 15000 <- closing balance
您需要自加入表。
CREATE TABLE Test
(
TransDate DATE,
Credit INT,
Debit INT,
);
INSERT INTO Test VALUES
('2014-01-01', 5000, NULL),
('2014-01-07', NULL, 2000),
('2014-01-11', 5000, NULL),
('2014-02-03', 6000, NULL),
('2014-02-06', NULL, 4000),
('2014-02-11', 3000, NULL),
('2014-02-21', NULL, 1000),
('2014-02-28', 2000, NULL),
('2014-03-01', 5000, NULL)
WITH CTE AS
(
SELECT t2.TransDate,
t2.Credit,
t2.Debit,
SUM(COALESCE(t1.credit, 0) - COALESCE(t1.debit, 0)) AS Balance
FROM Test t1
INNER JOIN Test t2
ON t1.TransDate <= t2.TransDate
WHERE t1.DataSource IN (3,4)
GROUP BY t2.TransDate, t2.Credit, t2.Debit
)
SELECT *
FROM CTE
WHERE (TransDate >= '2014/01/11' AND TransDate <= '2014/02/28' )
输出
TransDate Credit Debit Balance
2014-01-11 5000 (null) 8000
2014-02-03 6000 (null) 14000
2014-02-06 (null) 4000 10000
2014-02-11 3000 (null) 13000
2014-02-21 (null) 1000 12000
2014-02-28 2000 (null) 14000
SQL字段
问题内容: 使用下面的MySQL表包含具有相关金额的借方或贷方“操作”,如何选择具有非零“余额”的所有CLIENT_ID?我尝试将表格与自身连接起来以计算所有借方和贷方总计,但某些方法无法正常工作。 我的MySQL查询不起作用: 我期望的结果是这样的: 我不知道还有什么可以尝试的。任何帮助将是巨大的。 问题答案:
我是php和sql的基本用户,想做一个购物车系统,我需要您的帮助,为这个脚本。 结果是表中的所有列表都显示在页面上,我希望有一个弹出页面,如果您单击其中一个产品,它将显示在弹出页面上 如果您注意到我添加了一个锚标记,因为这是指向弹出页面的链接,弹出信息仍然在一个页面下: `
假设我有以下熊猫数据: 但是如何根据值列表进行子集呢?-类似这样: 得到:
问题内容: 如何使用JOIN从一个表中选择所有列,从另一个表中仅选择一些列?在MySQL中。 问题答案: 只需使用表名: 这将选择所有列和列和从。
交互流程图
我最近一直在通读Geb的书,并试图掌握它,因为它似乎是一个伟大的工具。我觉得我已经到了那里,但仍然有一些真正的核心概念,我似乎无法理解。 谢谢!