2013-04-13 3 views
1

두 테이블의 두 필드를 곱하는 트리거를 만들어야하지만 어떻게해야하는지 모르기 때문에 도움이되는지 살펴 보겠습니다.두 테이블의 트리거 곱하기

두 테이블,

제품 (제품 _, 가격)

주문 나는 테이블에 제품에서 가격을 곱 주문을 다른 필드를 추가해야합니다 (units_ordered PRODUCT_NAME (외래 키))

unit_ordered from Orders이므로 total_price = price (제품에서) X units_ordered (주문에서)

미리 감사드립니다. 나쁜 영어로 죄송합니다. 감사합니다.

+0

일부 코드를 표시 할 수 있습니까? 트리거를 작성하는 방법을 알고 있습니까? 아니면이 특정 작업을 수행하는 것에 대해 확신이 서지 않으십니까? – siride

+0

방아쇠 또는보기가 필요합니까? 레코드가 삽입 될 때 곱셈의 결과가있는 테이블 주문에 필드를 갖고 싶습니까? – koriander

+0

트리거에 대해 조금 읽었지만이 예제에서 사용하는 방법을 모르는 경우 모든 코드가 영어로되어 있지는 않지만 중요하지는 않습니다. 중요 한 테이블은 둘뿐입니다. : S – Tennosuke

답변

0

트리거가 전혀 필요하지 않습니다. 또한 이미 중복되었으므로 총 가격에 다른 열을 추가 할 필요가 없습니다.

총 가격을 원한다면 레코드를 투영하는 동안하십시오. 예

SELECT a.Product_Name, 
     a.Price, 
     b.units_ordered, 
     a.Price * b.units_ordered AS TotalPrice 
FROM Products a 
     INNER JOIN Orders b 
      ON a.Product_name = b.Product_name 

또는 당신은 당신의 SELECT 문 밖으로 VIEW을 만들 수 있습니다. 예, 당신이 정말로 다른 열을 추가하려면

CREATE VIEW ProductOrder 
AS 
SELECT a.Product_Name, 
     a.Price, 
     b.units_ordered, 
     a.Price * b.units_ordered AS TotalPrice 
FROM Products a 
     INNER JOIN Orders b 
      ON a.Product_name = b.Product_name 

및보기에서 선택

SELECT * FROM ProductOrder 

는하지만, 여전히 트리거 옵션을 선택하지 않습니다. UPDATE 및 두 테이블 조인을 사용하여 해당 열의 값을 업데이트하면됩니다. 새 열이 '주문'테이블에 TotalPrice이라고 가정합니다.

UPDATE Orders a 
     INNER JOIN Products b 
      ON a.Product_name = b.Product_name 
SET  a.TotalPrice = a.units_ordered * b.Price 
+0

답장을 보내 주셔서 감사합니다.하지만 정확히 필요한 것은 아닙니다. 필드가 두 필드의 곱셈이 아닌보기의 값을 필요로합니다. ( – Tennosuke

+0

내 업데이트 된 답변보기 –

+0

멋진 JW, 굉장합니다. 감사합니다. – Tennosuke