2014-01-30 4 views
1

В моей таблице для дубликата «строка нет» У меня есть другой «подрядчик», как показано ниже.как распределить разные значения одного столбца в полях нового столбца

LINE NO  CONTRACTOR 

L-0001  C-1000 
L-0001  C-2000 
L-0003  C-6000 
L-0003  C-8000 
L-0003  C-9000 
L-0004  C-5000 

Теперь я хотел бы сделать запрос для транспонирования значения, как показано ниже:

LINE NO  CONTRACTOR1  CONTRACTOR2   CONTRACTOR3 

L-0001  C-1000   C-2000 
L-0003  C-6000   C-8000    C-9000 
L-0004  C-5000 

Пожалуйста, помогите, как я должен сделать этот запрос?


я сделал запрос, ранжирование данных из моей таблицы, как показано ниже:

SELECT A.[line no], A.contractor, Count(*) AS ranking, "contractor" & [ranking] AS contractor_rank 
    FROM Table2 AS A INNER JOIN Table2 AS B ON (A.contractor>=B.contractor) AND (A.[line no] = B.[line no]) 
    GROUP BY A.[line no], A.contractor; 

затем сделал перекрестную вкладку запрос для топа запроса, как показано ниже:

TRANSFORM First(Query4.contractor) AS FirstOfcontractor 
    SELECT Query4.[line no] 
    FROM Query4 
    GROUP BY Query4.[line no] 
    PIVOT Query4.contractor_rank; 

теперь работает.

я добавить

+0

Вам нужно отредактировать свой вопрос, чтобы сообщить нам, что вы пробовали до сих пор. –

+0

Я попытался сделать это с помощью запроса перекрестной табуляции или сводной таблицы, но это не сработало. Мне нужно, чтобы запрос сделал новое поле столбца. например, для конкретных (строка №), если у меня есть 3 подрядчика, он создает новые поля (подрядчик1, подрядчик2, подрядчик3), а затем помещает значения в эти поля. – masoud

+1

Привет, Горд Томпсон, я пытался сделать, как вопросы, добавленные в моем вопросе, и кажется, работает, и вы сразу после 89 вопросов, я должен попробовать больше. – masoud

ответ

1

я сделал запрос, ранжирования данных моей таблицы, как показано ниже:

SELECT A.[line no], A.contractor, Count(*) AS ranking, "contractor" & [ranking] AS  contractor_rank 
FROM Table2 AS A INNER JOIN Table2 AS B ON (A.contractor>=B.contractor) AND (A.[line no] = B.[line no]) 
GROUP BY A.[line no], A.contractor; 

затем сделал перекрестную вкладку запроса для топ запроса, как показано ниже:

TRANSFORM First(Query4.contractor) AS FirstOfcontractor 
SELECT Query4.[line no] 
FROM Query4 
GROUP BY Query4.[line no] 
PIVOT Query4.contractor_rank; 

прямо сейчас оно работает.

Смежные вопросы