我有三个表 我加入以获得我需要的结果
- 账户表
- 联系人表 金融
- 交易的金融交易表
使用以下代码,我得到了帐号,全名,转码,TransNo和TransactionDate,没有错误。但是现在,我想知道该列表中每种交易类型的金额。但我似乎得到了多行。我添加了额外的代码,但注释掉了这几行以显示我要添加的内容。
我需要在"分组依据"部分添加什么?我尝试添加TransNo,BusinessDay,然后添加TransAmt。但是我得到了多行。我真的只是想展示那个TransNo的TransAmt。
到目前为止我的代码:
SELECT A.AccountNumber
,C.FirstName + ' ' + C.LastName Full_Name
,F.TransCode
--,F.TransAmt
,MAX(TransNo)TransNo
,Cast(Max(BusinessDay) as Date) TransactionDate
FROM FinTrans F
INNER JOIN Account A ON F.AccounttID = A.AccountId
INNER JOIN Contact C ON F.AccountID = C.AccountId
WHERE F.TransCode IN ('Payment', 'Adjustment')
AND F.AccountID IN (12345, 23456, 34567, 45678)
group by AccountNumber, FirstName, LastName, F.TransCode --, TransAmt
ORDER BY AccountNumber,TransactionDate
编辑:添加表示例数据结构
Account Table Fields (A):
---------------------
AccountId
AccountNumber
Contact Table Fields (C):
---------------------
AccountId
FirstName
LastName
FinTrans Table fields (F):
------------------------
AccountId
TransCode
TransNo
TransAmt
BusinessDay
**A.AccountId = C.AccountId = F.AccountId**
FinTrans Table Data (F):
---------------------------------------------------
AccountId|TransCode |TransNo |TransAmt|BusinessDay|
--------------------------------------------------
12345 |Adjustment|A123456 | 545.26| 2018-04-11|
---------------------------------------------------
12345 |Payment |P234567 | 125.14| 2018-04-10|
---------------------------------------------------
12345 |Payment |P234566 | 99.26| 2018-04-08|
---------------------------------------------------
12345 |Adjustment|A356877 | 12.98| 2018-04-06|
---------------------------------------------------
预期成果:
-------------------------------------------------------------------------
AccountNumber|Full_Name |TransCode | TransAmt|TransNo |BusinessDay|
-------------------------------------------------------------------------
A12345 |John Doe |Adjustment| 545.26|A123456 | 2018-04-11|
-------------------------------------------------------------------------
A12345 |John Doe |Payment | 125.14|P234567 | 2018-04-10|
-------------------------------------------------------------------------
试试这个:
选择 A.帐号 ,C.名字 + ' ' + C.姓氏 Full_Name,T.TransCode ,F.TransAmt ,T.TransNo ,T.交易日期
从(选择最大(转换号(转换号,投射(最大(工作日(作为日期( 交易日期、账户 ID、转码 来自 FinTrans 的转码 其中 转码 在 ("付款"、"调整"(和帐户 ID 中的 (12345, 23456, 34567, 45678(
按帐户 ID、转码分组(T
内部连接 FinTrans F ON T.ACCOUNTID = F.ACCOUNTId and T.TransNo=F.TransNo
内部联接 帐户 A 在 t.帐户 ID 上 = A.帐户 ID 内部联接 联系人 C 上的 T.帐户 ID = C.帐户ID
您是否尝试过将该列添加到交易值中?SUM(F.TransAmt(
看:
SELEC Name, Date, Value FROM x
返回
Jean 19-APR-2018 10
Jean 19-APR-2018 20
但
SELEC Name, Date, SUM(Value) FROM x GROUP BY Name
会回来
Jean 19-APR-2018 30