2016-10-10 71 views
0

我想在记录结束时显示一个尾部记录显示尾部记录: 的规格如下所示SQL查询以文本文件的末尾

尾部记录:

Field Name Length  Begin  End Type Mandatory/Optional Description 
TYPE   2   1  2  AN  M    TR' = Trailer 
RECORD COUNT 12   3  14  N  M    Record count not including Trailer Record 
PROCESS DATE 8   15  22  N  M    (system date YYYYMMDD Format) 
FILLER  278   23  300  AN  M    Space Filled 

我我将这个预告片记录显示在一个文本文件中,其中已有的记录约有1500条记录。我无法在行的末尾得到这个。我使用Count(*)和getdate()函数,但在批处理(.bat)文件中运行时无法在文本文件中获取和输出。

+2

你可以分享你的代码,你现在正在尝试什么。我的直觉告诉我你需要一个联合查询,但是如果没有更多的信息,很难说。 – JNevill

+0

你可以用UNION做,但前提是它可以和所有的数据行有相同的列。任何由SQL返回的行集都必须具有相同的列。 – RBarryYoung

+0

我在答复中发布了“Palak”代码,用于显示我已执行的记录。现在我想在末尾显示一个带有上述规格的预告片作为单独的行。 – Palak

回答

0
USE [st] 
GO 
/****** Object: StoredProcedure [dbo].[P_tnvin] Script Date: 10/10/2016 13:35:45 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[P_tnvin] 
[email protected] nvarchar(30) 
/*,@effectiveDate nvarchar(8) 
,@VIN nvarchar(25) 
,@lname1 nvarchar(40) 
,@middle1 nvarchar(40) 
,@fname1 nvarchar(40) 
,@address1 nvarchar(50) 
,@city nvarchar(35) 
,@state nvarchar(2) 
,@zip varchar(5)*/ 
AS 
BEGIN 
SET NOCOUNT ON; 
Create Table TmpTNVINInfo 
    (
    VINRecord char(300) 
    ) 
INSERT INTO TmpTNVINInfo 
SELECT 
    (
     'VS' 
     + '12610' 
     + CONVERT(CHAR(30),LEFT(P.policyNum, 30)) 
     + CONVERT(CHAR(8),P.effectiveDate, 112) 
     + CONVERT(CHAR(25),LEFT(V.VIN, 25)) 
     + CONVERT(CHAR(40),LEFT(I.lname1, 40)) 
     + ' ' 
     + CONVERT(CHAR(20),LEFT(I.middle1, 20)) 
     + CONVERT(CHAR(40),LEFT(I.fname1, 40)) 
     + ' ' 
     + '   ' 
     + CONVERT(CHAR(50),LEFT(I.address1, 50)) 
     + CONVERT(CHAR(35),LEFT(I.city, 35)) 
     + CONVERT(CHAR(2),LEFT(I.state, 2)) 
     + CONVERT(CHAR(5),LEFT(I.zip, 5)) 
     + '      ' 
    )storedprocedure 
FROM 
    [st].[dbo].[Policy] P 
    JOIN 
    [st].[dbo].[Auto] A 
    ON 
    P.policyID = A.policyID 
    JOIN 
    [st].[dbo].[Vehicle] V 
    ON 
    A.autoID = V.autoID 
    JOIN 
    [st].[dbo].[Insured] I 
    ON 
    P.insuredID = I.insuredID 
WHERE 
    P.policyType = 1 --1=Auto 
    AND 
    P.status = 1 --1=Active 
    AND 
    P.policyNum NOT LIKE 'Q%' 
END 

/*SELECT * FROM TmpTNVINInfo 

/****** Cleanup Temp Table *******/ 
DROP TABLE TmpTNVINInfo*/ 

这是我用来显示记录的代码。