我需要查询以下格式
Country Asset Stock
------------------------
INDIA 110 20
USA 230 27
CHINA 210 10
GERMAY 120 18
只有数字来自数据库,而下面是数字的计数部分。对于国家/地区而言,计数查询是不同的我想手动使用国家名称和标题,如下所示,计数应来自查询。 (不确定以下是正确的查询)
'INDIA' as [country],
count(CounttblAssets.AssetID) as [asset],Count(tblAssets.AssetID) as [stock]
查询计数
Count(tblAssets.AssetID)
From tblAssets
Inner Join tsysOS On tsysOS.OScode = tblAssets.OScode
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Where tblAssetCustom.State = 1 And tblAssetCustom.Customvr = 'INDIA'
注意:我没有来自前端应用程序的写权限来创建临时表。我只能查询可用的数据。
请帮助解决此问题
答案 0 :(得分:0)
select tblAssetCustom.Custom18 as [country],
count(CounttblAssets.AssetID) as [asset]
,Count(tblAssets.AssetID) as [stock]
--Count(tblAssets.AssetID)
From tblAssets
Inner Join tsysOS On tsysOS.OScode = tblAssets.OScode
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Where tblAssetCustom.State = 1 And tblAssetCustom.Custom18 in (
'INDIA' --110 20
, 'USA' --230 27
, 'CHINA' --210 10
, 'GERMAY' --120 18
)
group by tblAssetCustom.Custom18
我不确定你的限制在哪里。似乎tblAssetCustom.Customer具有您需要的国家/地区字符串。因此,如果要过滤国家/地区,则必须选择语句并使用group by。 还建议使用别名以提高可读性
Inner Join tsysOS On tsysOS.OScode = tblAssets.OScode
变为:
Inner Join tsysOS OS On OS.OScode = A.OScode
此外,如果您可以自己进行查询,但国家/地区不在表上,请创建派生表并加入
select 'BLAHBLAHBLAH', count(blah)
from tblAssetCustom ac join (select 'INDIA' as Country, 1 as AssetId UNION ALL Select 'USA', 2) as MyList
on ac.AssetId = MyList.AssetId