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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。