如何使用 Firebird 数据库制作分类帐
How to make ledger using Firebird database
我想根据上述查询设计 Crystal 报告,但我无法从 Firebird 数据库中获取数据。
SELECT TRANSACTION_DATE=null, PARTICULAR='Opening Balance', DEBIT=null, CREDIT=null, sum(DEBIT)-sum(CREDIT) as balance
FROM ROZNAMCHA
WHERE TRANSACTION_DATE < '2021-06-07'
union all
SELECT TRANSACTION_DATE, PARTICULAR, DEBIT, CREDIT, DEBIT-CREDIT
FROM ROZNAMCHA
WHERE TRANSACTION_DATE BETWEEN '2021-06-08' AND '2021-06-08'
我想要这样的东西
面临错误
您的查询有两个问题:
您目前的 select 列表中有布尔表达式,您可能只想在其中声明带有别名的固定值:
TRANSACTION_DATE=null, PARTICULAR='Opening Balance', DEBIT=null, CREDIT=null
应该是
null as TRANSACTION_DATE, 'Opening Balance' as PARTICULAR, null as DEBIT, null as CREDIT
作为问题 1 的结果,您在查询中使用了 table 中的列,同时您还使用了聚合函数。使用聚合函数时,出现在聚合函数之外的列必须列在 GROUP BY
子句中。
在这种情况下,解决了第一个问题,也就解决了这个问题。
简而言之,您的查询应该是:
SELECT null as TRANSACTION_DATE, 'Opening Balance' as PARTICULAR,
null as DEBIT, null as CREDIT,
sum(DEBIT)-sum(CREDIT) as balance
FROM ROZNAMCHA
WHERE TRANSACTION_DATE < '2021-06-07'
union all
SELECT TRANSACTION_DATE, PARTICULAR, DEBIT, CREDIT, DEBIT-CREDIT
FROM ROZNAMCHA
WHERE TRANSACTION_DATE BETWEEN '2021-06-08' AND '2021-06-08'
请注意,这不会产生您想要的输出。为此,您需要做更多。
我想根据上述查询设计 Crystal 报告,但我无法从 Firebird 数据库中获取数据。
SELECT TRANSACTION_DATE=null, PARTICULAR='Opening Balance', DEBIT=null, CREDIT=null, sum(DEBIT)-sum(CREDIT) as balance
FROM ROZNAMCHA
WHERE TRANSACTION_DATE < '2021-06-07'
union all
SELECT TRANSACTION_DATE, PARTICULAR, DEBIT, CREDIT, DEBIT-CREDIT
FROM ROZNAMCHA
WHERE TRANSACTION_DATE BETWEEN '2021-06-08' AND '2021-06-08'
我想要这样的东西
面临错误
您的查询有两个问题:
您目前的 select 列表中有布尔表达式,您可能只想在其中声明带有别名的固定值:
TRANSACTION_DATE=null, PARTICULAR='Opening Balance', DEBIT=null, CREDIT=null
应该是
null as TRANSACTION_DATE, 'Opening Balance' as PARTICULAR, null as DEBIT, null as CREDIT
作为问题 1 的结果,您在查询中使用了 table 中的列,同时您还使用了聚合函数。使用聚合函数时,出现在聚合函数之外的列必须列在
GROUP BY
子句中。在这种情况下,解决了第一个问题,也就解决了这个问题。
简而言之,您的查询应该是:
SELECT null as TRANSACTION_DATE, 'Opening Balance' as PARTICULAR,
null as DEBIT, null as CREDIT,
sum(DEBIT)-sum(CREDIT) as balance
FROM ROZNAMCHA
WHERE TRANSACTION_DATE < '2021-06-07'
union all
SELECT TRANSACTION_DATE, PARTICULAR, DEBIT, CREDIT, DEBIT-CREDIT
FROM ROZNAMCHA
WHERE TRANSACTION_DATE BETWEEN '2021-06-08' AND '2021-06-08'
请注意,这不会产生您想要的输出。为此,您需要做更多。