1. 前提固定行数 如:固定前10行等。
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FUN_GET_工程番号SQL]') AND type in (N'FN',N'IF',N'TF',N'FS',N'FT')) DROP FUNCTION [dbo].[FUN_GET_工程番号SQL] GO
-- ============================================= -- Description:?<GET_工程番号SQL> -- Author:??<> -- Create date: <2011/11/29> -- ============================================= ?CREATE? FUNCTION [dbo].[FUN_GET_工程番号SQL] ?( ? @IN_作業票番号 VARCHAR(15), ? @IN_工程番号 NUMERIC(3), ? @IN_連番 INT ?) ? RETURNS?? VARCHAR(4000)?? ? AS ? BEGIN ????????? DECLARE @SQL VARCHAR(4000)?? ????????? SET @SQL = '' ????????? SELECT @SQL = @SQL+CONVERT(NVARCHAR,@IN_連番-1)++'='+CONVERT(NVARCHAR,工程番号) ????????? FROM VTプロダクションコントロール工程 AS T ????????? WHERE T.作業票番号=@IN_作業票番号 AND 工程番号 = @IN_工程番号?? ????????? RETURN? @SQL ? END ?GO
?
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'FUN_LIST_工程番号行表示') AND type in (N'FN',N'FT')) DROP FUNCTION [dbo].[FUN_LIST_工程番号行表示] GO
-- ============================================= -- Description:?<LIST_工程番号行表示> -- Author:??<> -- Create date: <2011/11/29> -- ============================================= CREATE FUNCTION [dbo].[FUN_LIST_工程番号行表示] ( ? @IN_作業票番号 VARCHAR(15),--作業票番号 ? @IN_TOP件数 VARCHAR(3)????? --TOP件数 ) RETURNS TABLE AS RETURN ( ?SELECT ?REPLACE(MAX(備考0),'0=','') AS 備考1, ?REPLACE(MAX(備考1),'1=','') AS 備考2, ?REPLACE(MAX(備考2),'2=','') AS 備考3, ?REPLACE(MAX(備考3),'3=','') AS 備考4, ?REPLACE(MAX(備考4),'4=','') AS 備考5, ?REPLACE(MAX(備考5),'5=','') AS 備考6, ?REPLACE(MAX(備考6),'6=','') AS 備考7, ?REPLACE(MAX(備考7),'7=','') AS 備考8, ?REPLACE(MAX(備考8),'8=','') AS 備考9, ?REPLACE(MAX(備考9),'9=','') AS 備考10 ?FROM ( ?SELECT TOP (CONVERT(INT,@IN_TOP件数)) ?CASE WHEN DBO.FUN_GET_工程番号SQL(作業票番号,工程番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '0%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考0', ?CASE WHEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '1%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考1',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '2%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考2', ? CASE WHEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '3%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考3',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '4%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考4',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '5%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考5',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '6%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考6',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '7%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考7',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '8%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考8',ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) LIKE '9%' ?THEN DBO.FUN_GET_工程番号SQL(作業票番号,ROW_NUMBER() OVER(ORDER BY 作業票番号 ASC)) ELSE NULL END '備考9' ?FROM VTプロダクションコントロール工程 WHERE 作業票番号=@IN_作業票番号 ) A )
GO
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|