如何在不使用CROSS和ROWNUMBER的情况下获得相同的结果 [英] How to get same result without using CROSS and ROWNUMBER

查看:87
本文介绍了如何在不使用CROSS和ROWNUMBER的情况下获得相同的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

With Tb1 as
(select Date,Particulars,BillAmount,0'PaidAmount' from tblBill
union
select Date,Particulars,0'BillAmount',PaidAmount from tblPayment
)

SELECT T1.Particulars,T1.[Date],T1.[BillAmount],T1.[PaidAmount],(Sum(T2.BillAmount) - Sum(T2.PaidAmount)) as Balance FROM Tb1 as T1
            INNER JOIN
                Tb1 as T2
                ON T1.[date] >= T2.[date]
                Group By T1.Particulars,T1.[Date],T1.[BillAmount],T1.[PaidAmount]
                Order by [Date]





< b>我尝试了什么:





What I have tried:

DECLARE @JsonParsing NVARCHAR(MAX) = N'{"HD" :["CombinedMetadata:energy","CombinedMetadata:enron","energy","enron","information","time"],"HF":[2, 2, 3, 35, 2, 8],"REx":[]}'

SELECT S.DATA,SUM(t.Frequency) AS FREQUENCY 
	FROM (SELECT RIGHT(q.VALUE, LEN(q.VALUE) - CHARINDEX(':', q.VALUE)) AS DATA,
				ROW_NUMBER() OVER(ORDER BY(SELECT 0)) AS Row_nu
			FROM OPENJSON(@JsonParsing)
	WITH (HD NVARCHAR(MAX) AS JSON) AS p
	CROSS APPLY OPENJSON(p.HD) AS q) s,
		 (SELECT CONVERT(INT, b.VALUE) AS Frequency,
				ROW_NUMBER() OVER(ORDER BY(SELECT 0)) AS Row_nu
			FROM OPENJSON(@JsonParsing)
	WITH (HF NVARCHAR(MAX) AS JSON) AS a
	CROSS APPLY OPENJSON(a.HF) AS b) t
	WHERE t.Row_nu = s.Row_nu
	GROUP BY s.DATA

推荐答案

Google是你的朋友:



在SQL Server中使用JSON数据 - SQL Server Microsoft Docs [ ^ ]
Google is your friend:

Work with JSON data in SQL Server - SQL Server | Microsoft Docs[^]


这篇关于如何在不使用CROSS和ROWNUMBER的情况下获得相同的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆