2011-03-18 3 views
0

을 --- 게시 공식 도움말 1 단계 와 13 행 동적 및 12 행 정적 값 이후 ---- === SQL 쿼리SQL 쿼리 도움말 PLS .. DDL 및 DML

다음으로 SQL 테이블 만들기
USE [abc] 
GO 


SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[IC_Raw_In](
     [I_Date] [varchar](50) NULL, 
     [I_O_P] [money] NULL, 
     [I_O_H] [money] NULL, 
     [I_O_L] [money] NULL, 
     [I_C_O] [money] NULL, 
     [I_Serial] [numeric](18, 0) NULL 
) ON [PRIMARY] 

GO 

SET ANSI_PADDING OFF 
GO 

--- 2 단계 - === ... 대량으로 IC_Raw_In 테이블에 데이터를 삽입 나는 여기에 대량의 데이터를 사용해야 할 때마다 대량의 데이터를 얻을 수 있기 때문에

BULK 
INSERT dbo.IC_Raw_In 
FROM 'C:\ABC\InputData.txt' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '' 
) 
GO 

--- 3 단계 --- ==== AMPS12_C

에 대한 SQL 뷰 생성
USE [abc] 
GO 


SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

CREATE VIEW [dbo].[AMPS12_C] AS 


WITH RankedPrices 
AS 
(SELECT i_serial , I_C_O, ROW_NUMBER() OVER (ORDER BY i_serial) AS rn 
FROM   IC_Raw_In) 
    SELECT a.i_serial, AVG(b.I_C_O) AS AMPS12_C 
    FROM   RankedPrices AS a LEFT JOIN 
          RankedPrices AS b ON b.rn BETWEEN a.rn-11 AND a.rn 
GROUP BY a.i_serial 
GO 

--- 4 단계 --- === 쉽게 출력보기에 대한 v_AMP_C으로 뷰를 생성합니다

create view v_AMP_C as 
SELECT dbo.IC_Raw_In.I_Date, dbo.IC_Raw_In.I_O_P, dbo.IC_Raw_In.I_O_H, dbo.IC_Raw_In.I_O_L, dbo.IC_Raw_In.I_C_O, dbo.AMPS12_C.AMPS12_C, 
      dbo.IC_Raw_In.I_Serial 
FROM  dbo.IC_Raw_In INNER JOIN 
      dbo.AMPS12_C ON dbo.IC_Raw_In.I_Serial = dbo.AMPS12_C.i_serial 

--- 5 단계 보류 (내가 여기에 도움을 찾고 있어요)

이제 SQL 쿼리를 작성하여 아래 열거에 대해 C12WR이라는 새로운 열로 결과를 가져 오십시오.

C12WR 열의 처음 11 개 행과 C12WR 열의 12 번째 행을 "AMPS12_C"에있는 정적 값을 사용하여 제외 (NULL 사용)하고 싶습니다.이 값은 데이터를 가져올 때마다 변경됩니다 내 테이블 그래서 때마다 동적으로 변경됩니다. 그리고 AMPS12_C 열에는 테이블 끝까지 13 행 후 아래 수식을 계산해야합니다.

C12WR 열의 13 번째 행 후 = (위의 행의 값 (즉, curlunt 행 번호 -1) C12WR에서 * 11 + 현재 행 값에서 I_C_O 열)/12

+1

가능한 한 http://stackoverflow.com/questions/5331279/sql-query-help-after-13throw-dynamic-and-in-12th-row-static-values-with-formul과 http://stackoverflow.com/questions/5344954/sql-query-help-after-13throw-dynamic-and-in-12th-row-static-values-with-a-formul –

답변

0

SQL 쿼리를 문자열 (varchar 또는 nvarchar)에 저장 한 다음 exec()를 실행하여 동적 SQL을 만들 수 있습니다 .

동적으로 열 이름을 결정해야합니다.