2013-05-22 4 views
0

비용 비용 열과 소매 가격 열이 있지만이 열은 계산 된 필드 비용 비용 +35 %이므로 선택 문을 쓰고 싶습니다. 소매가를 자동으로 업데이트하지만 어떻게 할 것인가는 생각지 않는다. 도울 수 있니.비용 가격에 % 추가 및 새 열 만들기

Cost Price  Retail Price 
    35 
    45 
    125 
    35 

DECLARE @OrderNumber varchar (30) 
DECLARE @OrderDate int 
DECLARE @OrderLineNumber varchar(50) 
DECLARE @CustomerSkey int 
DECLARE @ProductSkey int 
DECLARE @OrderMethodSkey int 
DECLARE @Quantity int 
DECLARE @Cost Decimal(18,3) 


SET @OrderNumber = 1 
SET @OrderDate = 0 
SET @OrderLineNumber = 1 
SET @CustomerSkey = 1 
SET @ProductSkey = 1 
SET @OrderMethodSkey = 1 
SET @Quantity = 1 
SET @Cost = 1 


WHILE @OrderNumber <= 100 
WHILE @OrderDate <= 100 
WHILE @OrderLineNumber <= 100 
WHILE @CustomerSkey <= 100 
WHILE @ProductSkey <= 100 
WHILE @OrderMethodSkey <= 100 
WHILE @Quantity <= 100 
WHILE @Cost <= 100 



BEGIN 
INSERT INTO Orders 
(OrderNumber 
, OrderDate 
, OrderLineNumber 
, CustomerSkey 
, ProductSkey 
, OrderMethodSkey 
, OrderTime 
, Quantity 
, Cost 
, Price) 

SELECT 
'ORD' + Right ('000000' + CAST (@OrderNumber AS varchar (30)), 6) 
,DATEADD (day, CAST (RAND() * 1500 as int), '2008-1-1') 
,(Right ('0' + CAST (@OrderLineNumber AS varchar (30)), 6)) 
,(99 * RAND()) + 1 
,(99 * RAND()) + 1 
,(2 * RAND()) + 1 
,DATEADD(ms, cast(86400000 * RAND() as int), convert(time, '00:00')) 
,(190 * RAND()) + 10 
,(40 * RAND()) + 10 
,@Cost + (@Cost * .35) 



SET @OrderNumber = @OrderNumber + 1 
SET @OrderDate = @OrderDate + 1 
SET @OrderLineNumber = @OrderLineNumber + 1 
SET @CustomerSkey = @CustomerSkey + 1 
SET @ProductSkey = @ProductSkey + 1 
SET @OrderMethodSkey = @OrderMethodSkey + 1 
SET @Quantity = @Quantity + 1 
SET @Cost = @Cost + 1 


END 

답변

2

는 다음의 식으로 계산 된 열 확인을 테이블에 새 항목을 넣으면 CostPrice이 자동으로 평가됩니다.

+0

죄송합니다. 위의 스크립트 전체를 추가해야합니다. – wafw1971

+0

테이블 디자인 -> 열 속성 -> 계산 열 지정 -> 수식 -> CostPrice + (CostPrice * .35) –

+0

정말 고맙습니다. – wafw1971

0
UPDATE TableName SET RetailPrice = CostPrice + (CostPrice * .35) 
+0

죄송합니다. 전체 스크립트를 추가해야합니다. 위를 참조하십시오. – wafw1971

0
UPDATE Orders SET Price = Cost * 1.35 

아니면 퍼센트에게 변수를 만들려면 : 그래서 때마다

CostPrice + (CostPrice * .35) 

:

UPDATE Orders SET Price = Cost * (1 + (@PERCENT/100)) 
+0

죄송합니다. 위의 스크립트 전체를 추가해야합니다. – wafw1971

+0

내 대답이 업데이트되었습니다. – PhonicUK

0

소매 가격이 항상 비용 가격에 몇 퍼센트를 더한 값인 경우 Computed Column이 적합한 지 알고 싶을 수 있습니다. 그런 다음, 정의하거나 테이블 스키마를 변경하거나 선택한 행의 소매 가격을 업데이트 할 수없는 경우 다음

CREATE TABLE TableName ( 
    CostPrice DECIMAL(18,4), 
    RetailPrice AS (CostPrice * 1.35) 
); 

그러나 계산 열이 정의 된 테이블의 예입니다 CostPrice 열의 값 값을 사용하여 RetailPrice 열을 업데이트 할 수 있습니다.

UPDATE TableName SET RetailPrice = CostPrice * 1.35 

각 행에 대해 CostPrice를 사용하여 행의 RetailPrice를 설정합니다. 또한 테이블의 모든 행을 업데이트하는 대신 업데이트 된 행을 제한하려는 경우 WHERE 절을 포함 할 수 있습니다.

관련 문제