Hallo,
ich habe hier ein SQL String, das ich von Access in SQL übernehmen muss, jetzt äuft es auch soweit, nur wenn ich CONVERT VARCHAR einsetzen möchte, sagt er mir, das das in Unterabfragen nicht möglich sei, gibt es da eine Alternative?
SELECT
id_GP, GP_Bezeichnung, id_Asset,
Assetname,
IIF(Asset_Match = 'x',
IIF(IsNull(Cnt_SBA,'') <> '',
IIF(Min_SBA - CONVERT(Int,Min_SBA)>0,
CONVERT(DECIMAL,Min_SBA,2),Min_SBA) + ' | ' +
IIF(Max_SBA - CONVERT(Int,Max_SBA)>0,CONVERT(Decimal,Max_SBA,2),Max_SBA) + ' | ' + Cnt_SBA + ' | ' +
IIF(Durch_SBA - CONVERT(Int,Durch_SBA)>0,CONVERT(Decimal,Durch_SBA,2),Durch_SBA)
,'Nicht definiert'),'') AS Asset_SBA
FROM (SELECT
abf_AssetGP_Matrix_GP_Asset_Merged.id_GP,
abf_AssetGP_Matrix_GP_Asset_Merged.GP_Bezeichnung,
abf_AssetGP_Matrix_GP_Asset_Merged.id_Asset,
abf_AssetGP_Matrix_Assets.Assetname,
abf_AssetGP_Matrix_GP_Asset_Merged.Asset_Match,
abf_AssetGP_Matrix_Assets.Min_SBA,
abf_AssetGP_Matrix_Assets.Max_SBA,
abf_AssetGP_Matrix_Assets.Cnt_SBA,
abf_AssetGP_Matrix_Assets.Durch_SBA
FROM abf_AssetGP_Matrix_GP_Asset_Merged LEFT JOIN abf_AssetGP_Matrix_Assets
ON abf_AssetGP_Matrix_GP_Asset_Merged.id_Asset = abf_AssetGP_Matrix_Assets.id_Asset
) AS QRY_SUB;
Es liegt ja wohl an diesem Konstruckt:
CONVERT(DECIMAL,Min_SBA,2),Min_SBA) + ' | ' +
IIF(Max_SBA - CONVERT(Int,Max_SBA)>0,CONVERT(Decimal,Max_SBA,2),Max_SBA) + ' | ' + Cnt_SBA + ' | ' +
IIF(Durch_SBA - CONVERT(Int,Durch_SBA)>0,CONVERT(Decimal,Durch_SBA,2),Durch_SBA)
Wenn ich hier aber mit Convert Varchar versuche noch mal umzuwandeln bekomme ich die Meldung, das das in U-Abfragen nicht geht...
ich habe hier ein SQL String, das ich von Access in SQL übernehmen muss, jetzt äuft es auch soweit, nur wenn ich CONVERT VARCHAR einsetzen möchte, sagt er mir, das das in Unterabfragen nicht möglich sei, gibt es da eine Alternative?
SELECT
id_GP, GP_Bezeichnung, id_Asset,
Assetname,
IIF(Asset_Match = 'x',
IIF(IsNull(Cnt_SBA,'') <> '',
IIF(Min_SBA - CONVERT(Int,Min_SBA)>0,
CONVERT(DECIMAL,Min_SBA,2),Min_SBA) + ' | ' +
IIF(Max_SBA - CONVERT(Int,Max_SBA)>0,CONVERT(Decimal,Max_SBA,2),Max_SBA) + ' | ' + Cnt_SBA + ' | ' +
IIF(Durch_SBA - CONVERT(Int,Durch_SBA)>0,CONVERT(Decimal,Durch_SBA,2),Durch_SBA)
,'Nicht definiert'),'') AS Asset_SBA
FROM (SELECT
abf_AssetGP_Matrix_GP_Asset_Merged.id_GP,
abf_AssetGP_Matrix_GP_Asset_Merged.GP_Bezeichnung,
abf_AssetGP_Matrix_GP_Asset_Merged.id_Asset,
abf_AssetGP_Matrix_Assets.Assetname,
abf_AssetGP_Matrix_GP_Asset_Merged.Asset_Match,
abf_AssetGP_Matrix_Assets.Min_SBA,
abf_AssetGP_Matrix_Assets.Max_SBA,
abf_AssetGP_Matrix_Assets.Cnt_SBA,
abf_AssetGP_Matrix_Assets.Durch_SBA
FROM abf_AssetGP_Matrix_GP_Asset_Merged LEFT JOIN abf_AssetGP_Matrix_Assets
ON abf_AssetGP_Matrix_GP_Asset_Merged.id_Asset = abf_AssetGP_Matrix_Assets.id_Asset
) AS QRY_SUB;
Es liegt ja wohl an diesem Konstruckt:
CONVERT(DECIMAL,Min_SBA,2),Min_SBA) + ' | ' +
IIF(Max_SBA - CONVERT(Int,Max_SBA)>0,CONVERT(Decimal,Max_SBA,2),Max_SBA) + ' | ' + Cnt_SBA + ' | ' +
IIF(Durch_SBA - CONVERT(Int,Durch_SBA)>0,CONVERT(Decimal,Durch_SBA,2),Durch_SBA)
Wenn ich hier aber mit Convert Varchar versuche noch mal umzuwandeln bekomme ich die Meldung, das das in U-Abfragen nicht geht...