-1
以下の構文を修正するには、別のCASEで評価される変数に値を返す関数を含む入れ子の場合が必要です。Sqlスカラー値関数入れ子の場合
CREATE FUNCTION dbo.EpsClassificacaoConjunto (@Bloco varchar(5), @Sub varchar(5), @SSub varchar(5))
RETURNS varchar(5)
AS
BEGIN
DECLARE @Comprimento float = CASE WHEN @Sub is null AND @SSub not null then SELECT dbo.EpsComprimentoSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND Submontagem is null AND [email protected] AND Tipo='SET'
WHEN @SSub is null and @Sub not null then SELECT dbo.EpsComprimentoSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND Subsubmontagem is null AND Tipo='SET'
ELSE SELECT dbo.EpsComprimentoSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND [email protected] AND Tipo='SET' END;
DECLARE @Largura float = CASE WHEN @Sub is null AND @SSub not null then SELECT dbo.EpsLarguraSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND Submontagem is null AND [email protected] AND Tipo='SET'
WHEN @SSub is null and @Sub not null then SELECT dbo.EpsLarguraSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND Subsubmontagem is null AND Tipo='SET'
ELSE SELECT dbo.EpsLarguraSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND [email protected] AND Tipo='SET' END;
DECLARE @Altura float = CASE WHEN @Sub is null AND @SSub not null then SELECT dbo.EpsAlturaSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND Submontagem is null AND [email protected] AND Tipo='SET'
WHEN @SSub is null and @Sub not null then SELECT dbo.EpsAlturaSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND Subsubmontagem is null AND Tipo='SET'
ELSE SELECT dbo.EpsAlturaSub(DimensaoDePerfil) FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND [email protected] AND Tipo='SET' END;
DECLARE @Peso float = CASE WHEN @Sub is null and @SSub is not null then SELECT Peso FROM VShiAssemblyBom WHERE [email protected] AND Submontagem is null AND [email protected] AND Tipo='SET'
WHEN @Sub not null and @SSub is null then SELECT Peso FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND Subsubmontagem is null AND Tipo='SET'
ELSE SELECT Peso FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND [email protected] AND Tipo='SET' END;
DECLARE @Pagamento varchar(2) = CASE WHEN @Sub is null and @SSub not null then SELECT TOP 1 CodigoDeFabricacao FROM VShiAssemblyBom WHERE [email protected] AND Submontagem is null AND [email protected] AND Tipo='SET'
WHEN @Sub not null and @SSub is null then SELECT TOP 1 CodigoDeFabricacao FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND Subsubmontagem is null AND Tipo='SET'
ELSE SELECT TOP 1 CodigoDeFabricacao FROM VShiAssemblyBom WHERE [email protected] AND [email protected] AND [email protected] AND Tipo='SET' END;
DECLARE @Fabricacao varchar(2) = CASE WHEN @Sub is null and @SSub not null then SELECT TOP 1 CodigoDeFabricacao FROM VShiPartBom WHERE [email protected] AND Submontagem is null AND [email protected] AND Tipo='SET'
WHEN @Sub not null and @SSub is null then SELECT TOP 1 CodigoDeFabricacao FROM VShiPartBom WHERE [email protected] AND [email protected] AND Subsubmontagem is null AND Tipo='SET'
ELSE SELECT TOP 1 CodigoDeFabricacao FROM VShiPartBom WHERE [email protected] AND [email protected] AND [email protected] AND Tipo='SET' END;
RETURN CASE WHEN @Peso<5000 AND @Largura<2500 AND @Altura<4000 AND @Comprimento<10000 THEN '1-B'
WHEN @Peso<5000 AND @Largura<5000 AND @Altura<4000 AND @Comprimento<10000 THEN '1-A'
WHEN @Peso<10000 AND @Largura<10000 AND @Altura<4000 AND @Comprimento<10000 THEN '2'
WHEN @Peso<5000 AND @Largura<2500 AND @Altura<4000 AND @Comprimento>=10000 AND @Comprimento<15000 THEN '3'
ELSE 'ESP' END
END
GO
ロジック部は、既に述べた、しかし、私がSQL構文に問題を抱えている表示され、アドバイスしてください...
エラーメッセージを読んで見つけようとしましたか? – dfundako
これはエラーです: '1テキストにエラーがありますか、オブジェクトの種類がこのドキュメントに対応していません。 ... ' –
あなたはどのRDBMSを使用していますか? – dfundako