2013-08-06 5 views
0

여기에 도움이 필요합니다. 기본적으로 두 개의 열에 숫자와 항목을 결합하려고합니다. 날짜 및 ID 필드와 함께 7 항목 열 및 7 qty 열이있는 테이블이 있습니다.여러 개의 SQL 열을 하나로 결합하기

enter image description here

어떻게 항목을 반복해도 나는 그들 모두는 열 기본적으로 부부로 결합 할 수 있습니다? 이런 일을하려고하는 임 : Item1 QTY DATE 항목 1은 열의 수만큼 반복됩니다.

결과는 항목의 경우 하나의 열이어야하며 가능한 경우 qty 옆에 Date 열이 있어야합니다.

저는 보통 SQL 녀석이 아니므로 저와 절을 같이하십시오.

여기 여러 행에 여러 열을 얻기 위하여 나의 현재의 선택 문

SELECT TOP (100) PERCENT 
    Item1, Qty1, Item2, Qty2, Item3, Qty3, Item4, Qty4, Item5, Qty5, 
    Item6, Qty6, Item7, Qty7, Date, ID 
FROM   
    dbo.ITEMREPORT1 
+0

그리고 검색어의 결과는 무엇입니까? –

+0

내가 왜 그걸 함께 원해? 더군다나 왜'Item1'을 두 번,'Item3'을 세 번하고 싶습니까? –

+0

나는 원하지 않는다. 거기에 넣으십시오, 여기에 기둥을 분리하여 보여주십시오. 내가 말했듯이, 여기 SQL 사람이 아니야, 미안. – GabrielVa

답변

3

, 당신은 데이터를 피벗 해제하는 것이 좋습니다.

select c.item, c.qty, i.date 
from dbo.ITEMREPORT1 i 
cross apply 
(
    values 
    (Item1, Qty1), 
    (Item2, Qty2), 
    (Item3, Qty3), 
    (Item4, Qty4), 
    (Item5, Qty5), 
    (Item6, Qty6), 
    (Item7, Qty7) 
) c (Item, Qty); 

을 또는 당신은 CROSS이 ALL SELECT/UNION에 적용 사용할 수 있습니다 : SQL Server를 사용하는 경우는 CROSS이 값을 적용 구현할 수 2008+

select c.item, c.qty, i.date 
from dbo.ITEMREPORT1 i 
cross apply 
(
    select Item1, Qty1 union all 
    select Item2, Qty2 union all 
    select Item3, Qty3 union all 
    select Item4, Qty4 union all 
    select Item5, Qty5 union all 
    select Item6, Qty6 union all 
    select Item7, Qty7 
) c (Item, Qty); 
3

당신은 피벗 해제하고 싶습니다. 요즘 모든 대답에 숟가락을 먹여야 만하는 이유는 무엇입니까? 그 가치, 나는을 downvoted되었다 내 대답에서 매우 링크를 사용하는 것을 들어

select Item, Quantity from 
(
    select * from [dbo].[ITEMREPORT1] 
    unpivot (
    Item for ItemOriginalColumn in (Item1, Item2, Item3, Item4, Item5, Item6, Item7) 
) b 
    unpivot (
    Quantity for QuantityOriginalColumn in (Qty1, Qty2, Qty3, Qty4, Qty5, Qty6, Qty7) 
) c 
) as d 
where 
RIGHT(ItemOriginalColumn,1) = RIGHT(QuantityOriginalColumn, 1) 

은/즐겨 ...이 솔루션에 도달하기 위해 삭제.

+1

... 내 가만히있어! – swasheck

+0

당신의 대답이 * * 그리고 링크로 보이기를 원하는 것으로 보인다면, 제 의견으로는별로 대답이되지 않습니다. (사실, 당신은 그저 케이스). 당신이 대답을 spoonfed하고 싶지 않다면, 적어도 대답처럼 보이게하는 물질을 당신의 게시물에 추가하십시오. 어쨌든,이 대답은 +1 할만 큼 좋습니다. – Lamak

+0

하하, 빌어 먹을 애들 요즘! – mikey

관련 문제