我有以下查询:
SELECT st.np_trxn_dt AS transactiondate,
st.trxn_dt,
(
SELECT ISNULL(st.cheque_no, '-') + '-' + ISNULL(st.bank_name, '-') +
'-' + ISNULL(st.voucher_no, '-') + '-' + ISNULL(st.trxn_by, '-')
) AS OldDescription,
ISNULL(
(
SELECT dbo.bank_statement_remarks(
st.bank_name,
st.trxn_by,
st.sav_amt,
st.wthdrl_amt,
ISNULL(
(
SELECT NAME
FROM mem_group_mcg
WHERE group_id = sa.center_id
),
''
)
)
),
''
) AS DESCRIPTION,
(st.sav_amt) AS Saving,
st.wthdrl_amt AS Withdrawl,
ISNULL(st.remarks, '') AS remarks,
st.trxn_dt
FROM dbo.sav_transaction AS st
INNER JOIN (
SELECT DISTINCT acc_no,
center_id,
group_id
FROM sav_acc_mcg
WHERE scheme_id = '100'
GROUP BY
acc_no,
center_id,
group_id
) sa
ON st.acc_no = sa.acc_no
WHERE (st.trxn_dt BETWEEN '2013-07-17' AND '2014-01-22')
AND st.acc_no = '100-002703'
ORDER BY
st.trxn_dt
结果:
但我需要仅通过trxn_dt / transactiondate过滤/分组,如果我添加GROUP BY子句,则需要将所有字段添加到不能给出所需结果的子句中。我需要根据trxn_dt的金额。我需要一行一个trxn_dt每个转换类型,即存款或取款。如果在同一日期有3笔存款交易,那么我需要一个汇总行进行交易,如果在同一日期有2个撤销交易,那么我需要一个汇总的行进行交易。 换句话说,我需要单独的行进行存款和提款,但结果应该是相加的。
答案 0 :(得分:1)
您是要尝试过滤还是尝试分组?只有在使用聚合函数(我在您发布的查询中没有看到)时,分组才有意义。如果您希望您的结果根据交易日期汇总,那么您无论如何都不能容纳其他信息,例如支票号等,因为会有多个支票。
答案 1 :(得分:0)
试试这个
SUM(Deposit) OVER(partition by transactiondate) as totaldeposit