2014-02-19 4 views
1

온라인 주문, 온라인 주문 정보 세부 주문 테이블을 기반으로 온라인 주문 테이블의 주문 총계를 계산하는 방법에 관한 문제가 있습니다. 내가 id_order에서 모든 값의 합계와 온라인 주문 테이블에서 주문 금액에 삽입하고 싶은다른 테이블의 값으로 SQL 그룹 합계

id_order Id_product quantity price value 
1    2   1   3  3 
1    3   2   2  4 
2    1   1   5  5 

: 같은

세부 테이블이 보인다.

SQL 명령을 도와 줄 수 있습니까?

+4

어느 하나가 무엇입니까? MySQL은? SQL Server? 일반 SQL? –

+0

MYSQL SERVER 2005 – user3328253

+0

정말 나쁜 중국어 사본에 빠졌던 것 같습니다. MySQL Server 2005와 같은 것은 존재하지 않습니다. MySQL 또는 SQL Server 2005를 사용할 수 있습니다. –

답변

0

이게 원하는가요?

SELECT o.id_order, SUM(quantity * price) AS total_price 
FROM online o 
    INNER JOIN detail d 
     ON d.id_order = o.id_order 
GROUP BY o.id_order 
+0

그럴 것입니다. 고맙습니다! – user3328253

+0

@ user3328253 우선 행을 필터링하기 위해'온라인 '양식을 선택하고 있지만'detail' 만 선택할 수도 있고'WHERE EXISTS' 또는'WHERE id_order IN (...)'절을 가질 수도 있습니다. – plalx

0

사용하는 데이터베이스 시스템이 명확하지 않습니다. 당신은 orders.total_amount 이 업데이트 문이 어떤 DB에서 작동합니다 업데이트하려면 :

update orders 
    set total_amount = (
       select SUM(value) 
       from orders_details 
       where id_order = orders.id 
      ) 
    where EXISTS(select * 
       from orders_details 
       where id_order = orders.id) 

이 업데이트 문이 MySQL의에서 작동합니다

update orders u 
inner join (select id_order, SUM(value) as total 
        from orders_details 
        GROUP BY id_order) s on 
    u.id = s.id_order 
set u.total_amoun = s.total