2013-10-03 5 views
0

У меня есть следующий запрос, в котором я разбиваю один столбец на разные столбцы на основе поля «Обязательно».Разделить столбцы по полям и объединить записи MS Access 2007

SELECT 
Station, 
Line, 
[Tag Reference], 
FTN, 
IIF(Required = "TF", Required, "") AS [TF Required], 
IIF(Required = "TF", [Date Checked], "") AS [TF Date], 
IIF(Required = "TF", [User Checked], "") AS [TF User], 
IIF(Required = "ML", Required, "") AS [ML Required], 
IIF(Required = "ML", [Date Checked], "") AS [ML Date], 
IIF(Required = "ML", [User Checked], "") AS [ML User], 
Format 

FROM [Tag Information] 

ORDER BY 
Station, 
Line, 
[Tag Reference] 

Я получаю предметы, в которых каждая запись является собственной линией, но хотелось бы группировать записи вместе.

IE. Я получаю эту таблицу, где строки разделены, но я хотел бы видеть значения, сгруппированные с помощью ссылки на тег. (Как и во второй таблице)

Station Line Tag Reference FTN TF Required TF Date TF User ML Required ML Date ML User Format 
Clearbrook 1 SCADA[30].0     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].0  TF      
Clearbrook 1 SCADA[30].1     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].1  TF      
Clearbrook 1 SCADA[30].10     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].2     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].4     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].4  TF 7/12/2006 WPB    
Clearbrook 1 SCADA[30].5  TF 7/12/2006 WPB    
Clearbrook 1 SCADA[30].5     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].6     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].8     ML 7/12/2006 WPB 
Clearbrook 1 SCADA[30].8  TF 7/12/2006 WPB    
Clearbrook 1 SCADA[30].9  TF 7/12/2006 WPB    
Clearbrook 1 SCADA[30].9     ML 7/12/2006 WPB 

Я хотел бы видеть эту таблицу:

Station Line Tag Reference FTN TF Required TF Date TF User ML Required ML Date ML User Format 
    Clearbrook 1 SCADA[30].0  TF   ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].1  TF   ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].10     ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].2     ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].4  TF 7/12/2006 WPB ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].5  TF 7/12/2006 WPB ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].6     ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].8  TF 7/12/2006 WPB ML 7/12/2006 WPB 
    Clearbrook 1 SCADA[30].9  TF 7/12/2006 WPB ML 7/12/2006 WPB 

Любая помощь будет большим. Я в недоумении.

ответ

1

Вы должны быть в состоянии использовать GROUP BY запроса, чтобы закрепить результаты, что-то вроде следующего:

Скажем, у вас есть таблица с именем [ThingStatus] с данными ...

ThingName Status1 Status2 
--------- ------- ------- 
foo  thing1   
foo     thing2 

в общем, вы можете объединить записи с помощью запроса ...

SELECT 
    ThingStatus.ThingName, 
    Max(ThingStatus.Status1) AS Status1, 
    Max(ThingStatus.Status2) AS Status2 
FROM ThingStatus 
GROUP BY ThingStatus.ThingName; 

... который дает

ThingName Status1 Status2 
--------- ------- ------- 
foo  thing1 thing2 
+0

Хорошо, что все хорошо работает и денди, пока мы не столкнемся с этой проблемой ... Поскольку эти записи обновляются, в Dates Checked есть изменения, но я предпочел бы сохранить историю и создать новую запись, а не изменить ее , Макс работает хорошо для даты, как это обычно бывает позже, но пользователь не всегда «максимальный», чем предыдущий. Поэтому возьмите таблицу выше и добавьте следующее. 'Clearbrook 1 SCADA [30] .9 ML 7/12/2010 EGB' Я хотел бы сохранить эту запись, но сейчас она натягивает дату и кладет на нее WPB. – brans041

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