0
我有两个表一个是保持资产和维持子资产其他:SQL服务器:排过
表1:assethdr
assetid
0000000002
0000000003
和
表2:assetdet
assetsubid assetid
0000000001 0000000002
0000000002 0000000002
0000000003 0000000002
0000000001 0000000003
0000000001 0000000109
0000000002 0000000109
0000000003 0000000109
0000000004 0000000109
0000000005 0000000109
我做了这个查询:
WITH cte_assets
as
(SELECT
CASE WHEN ROW_NUMBER() OVER(PARTITION BY h.assetid ORDER BY f.assetsubid) = 1
THEN 'BA-'+LTRIM(RTRIM(h.CpnyId))+'-'+right(LTRIM(h.AssetId),5)+'-'+'0001' ELSE '' END as [Business Asset Number]
, 'BA'+
+'-'+RIGHT(LTRIM(RTRIM(ltrim(rtrim(f.cpnyid)))),3)
+'-'+
RIGHT(f.assetid,5)+'-'+RIGHT(f.assetsubid,4)as [Component Asset ID*]
FROM pssfaassets f
INNER JOIN PSSFAAssetsHdr h
ON f.AssetId=h.assetid
AND h.AssetId LIKE '%0000000002'
--GROUP BY h.cpnyid,h.AssetId,f.AssetSubId
)
SELECT * FROM cte_assets
WHERE [Business Asset Number]<>[Component Asset ID*]
ORDER BY [Component Asset ID*],[Business Asset Number]
,但我没有得到正确的结果,这应该是:
Rownum Business Asset Number rownum2 Component Asset ID*
1 BA-613-00002-0001 1 BA-613-00002-0002
1 2 BA-613-00002-0003
2 BA-607-00109-001 1 BA-607-00109-0002
2 2 BA-607-00109-0003
2 3 BA-607-00109-0004
2 4 BA-607-00109-0005
CASE没有结束 – Alsin
是的,它向右滚动,你会看到它 – Michelle
如果你把assertdr和assetdet记录的cpnyid放在一起让我们可以更好地查看数据,可能会更容易一些。 –