SQL Server 2012 UPDATE문 질문과 왜래키 질문 0 1 3,210

by ArkSaber [SQLServer] UPDATE 외래키 [2014.03.31 14:10:28]


SQLTolls라는 프로그램을 쓰다가 타 회사 DB쪽에서 쿼리 연습을 하는건 눈치를 받아서 MS사 SQL Server 2012 프로그램을 설치하고 연습 중입니다.

테이블을 열심히 만들고 엑셀을 이용한 데이터 입력까지는 잘 했는데...

제가 만든 '판매'테이블의 판매금액, 원가금액, 수익금액 행은 현재 NULL로 잡혀있습니다.
(즉, 엑셀 데이터에 자료가 없었습니다.)

판매 테이블은 주문번호(기본키), 주문일자, 거래처코드(외래키), 판매금액, 원가금액, 수익금액으로 이루어져 있고, 

판매상세 테이블은 주문번호(외래키), 품목코드(외래키), 수량, 단가, 금액, 단위원가, 원가, 수익으로 이루어져 있습니다.

그래서 '판매상세' 테이블에서 이 행들을 업데이트 하려고 하는데 계속 오류가 걸리네요.

update 판매 
   set 수익금액 = (select 수익 from 판매상세 where 판매.수익금액 = 수익)
 where 1=1;

이런 식으로 쿼리를 짜서 실행을 하면 적용이 되었다고 하는데 실제로 값은 들어가지를 않습니다.
(물론 다른 행을 실행해도 마찬가지 입니다.)

그리고 위에 나와 있는 대로 '판매상세'테이블은 기본키가 없고 외래키만 2개를 잡으려고 합니다.

ALTER명령어로 하나(주문번호)는 잡았는데 다른 하나(품목코드)는 못잡았습니다.

방법이 따로 있을까요?
by 마농 [2014.03.31 16:47:37]
1. 서브쿼리 부분이 틀렸네요.
- 변경전 : (select 수익 from 판매상세 where 판매.수익금액 = 수익)
- 변경후 : (select SUM(수익) from 판매상세 where 판매.주문번호 = 주문번호)
2. 외래키는 다른 테이블의 주키에 걸 수 있습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입