2013-03-16 3 views
1

내가 3 열을 가지고있는 customer_order_products에 FK로 customer_order 테이블에서 오는 하나의 컬럼 ORDER_ID에 봉착 :split 함수를 사용하여 여러 값을 하나의 테이블에 삽입하십시오. 그것은 가능한가?

  • order_id,
  • product_id
  • quantity
  • . 위에서 언급 생성 된

내가이 :::처럼 우리를 보여줄 수 있도록 하나 개의 테이블에 동시에 삽입 할이

order_id  product_id  quantity 
1    20    3 
1    21    2 
1    17    5 

는 양을 가진 3 개 가지 제품을 위해 만들어진 고객의 고객을 의미 order_id는 1입니다.

어떻게 구현할 수 있습니까? 내가 제대로 이해하면 plzzz 도움이

+0

나는 당신이 당신의 이슈에 대해 더 많은 설명을 할 필요가 있다고 생각한다. 당신이주는 것에서부터, 나는 분할 기능에 대한 필요성을 볼 수 없다. – ljh

+0

사실 나는 동시에 product_id와 수량의 수를 전달하려고합니다. 그래서 그들은 customer_order에서 온 유일한 order_id를 서로 연결했습니다. product_id 및 수량이 배열로 전달됩니다. –

답변

0

를 필요, INSERT 일반 귀하의 경우에 충분하고 하나 개의 문장

INSERT INTO customer_order_products 
    ([order_id], [product_id], [quantity]) 
VALUES 
    (1, 20, 3), 
    (1, 21, 2), 
    (1, 17, 5); 

SQLFiddle

+0

@SandipRakshak 질문에 대한 도움이 더 필요하십니까? – peterm

0
CREATE TABLE dbo.customer_order 
(
    order_id int 
) 

CREATE TABLE dbo.customer_order_products 
(
    product_id int, 
    order_id int, 
    quantity int 
) 

INSERT dbo.customer_order 
VALUES(1) 

INSERT dbo.customer_order_products 
VALUES(20, 1, 2), 
     (20, 1, 1), 
     (21, 1, 1), 
     (21, 1, 1), 
     (17, 1, 5) 

IF OBJECT_ID('tempdb.dbo.#NewTable') IS NOT NULL DROP TABLE dbo.#NewTable 
SELECT c.order_id, p.product_id, SUM(quantity) AS quantity 
INTO dbo.#NewTable 
FROM dbo.customer_order c JOIN dbo.customer_order_products p ON c.order_id = p.order_id 
GROUP BY c.order_id, p.product_id 

SELECT * 
FROM dbo.#NewTable 

여러 행을 삽입 할 수 있습니다 결과 :

orde_id product_id quantity 
1  17   5 
1  20   3 
1  21   2 
관련 문제