将SQL SERVER中的两组记录相邻放置的最简单方法是什么?
我写下面的查询是为了把两组记录放在一起将SQL SERVER中的两组记录相邻放置的最简单方法是什么?,sql,sql-server,join,Sql,Sql Server,Join,我写下面的查询是为了把两组记录放在一起 WITH cte AS (SELECT SubSubsidaryAccountCode, sum(Debit) AS debit, sum(Credit) AS credit, ROW_NUMBER() over (PARTITION BY SubSubsidaryAccountCode ORDER BY SubSubsidaryAc
WITH cte AS
(SELECT SubSubsidaryAccountCode,
sum(Debit) AS debit,
sum(Credit) AS credit,
ROW_NUMBER() over (PARTITION BY SubSubsidaryAccountCode
ORDER BY SubSubsidaryAccountCode) AS RN
FROM TBLLedgerLevel4
WHERE SubSubsidaryAccountCode LIKE '4%'
OR SubSubsidaryAccountCode LIKE '5%'
GROUP BY SubSubsidaryAccountCode ),
cte2 AS
(SELECT *
FROM TBLLevel4)
SELECT a.SubSubsidaryAccountCode ,
c.SubSubsidaryAccountName AS RevenuName ,
sum(a.Debit) AS debit ,
b.SubSubsidaryAccountCode AS SubsidaryAccount2 ,
d.SubSubsidaryAccountName AS ExpenseName ,
sum(b.Credit) AS credit
FROM cte a
JOIN cte2 c ON a.SubSubsidaryAccountCode = c.SubSubsidaryAccountCode
FULL JOIN cte b ON a.RN = b.RN
JOIN cte2 d ON b.SubSubsidaryAccountCode=d.SubSubsidaryAccountCode
WHERE a.SubSubsidaryAccountCode LIKE '4%'
AND b.SubSubsidaryAccountCode LIKE '5%'
GROUP BY a.SubSubsidaryAccountCode,
b.SubSubsidaryAccountCode,
c.SubSubsidaryAccountName,
d.SubSubsidaryAccountName
输出:
上面的输出包含以4和5开头的两个会计代码的记录。现在,以4开头的会计代码的记录已填充,并且符合所需结果,但以会计代码5开头的第二行记录未填充,其中必须有空值。请帮助我我们将尝试解决此问题。您将筛选a.SubSubsidaryAccountCode(如“4%”之类)不能有acc代码为5的行。如果为表提供SQLFIDLE(如data@khurram我已经提供了每一件事情来描述我的问题,没有什么可以说的了,所以请给我一个答案@A.ツ 我不明白你的意思。你想说什么?你能提供你的预期输出吗?
SubSubsidaryAccountCode RevenuName debit SubsidaryAccount2 ExpenseName credit
4-106-1001-10026 Cash Sale 52889 5-105-1005-10011 Rf Battles 18091289
4-108-1012-10037 New Sale1 1000 5-105-1005-10011 Rf Battles 18091289