2013-10-03 65 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

好的,这项工作一切顺利,直到我们遇到这个问题... 由于这些条目更新,日期检查有变化,但我宁愿保留一个历史记录,并创建一个新的记录,而不是改变一个。 Max通常会在日期之后正常工作,但用户并不总是“最大”。所以拿上面的表并添加以下内容。 “Clearbrook 1 SCADA [30] .9 ML 7/12/2010 EGB' 我想保留那条记录,但是现在它会提取日期并将WPB放在它上面。 – brans041