【问题标题】:Microsoft Access Query, Matching Values between ColumnsMicrosoft Access 查询,列之间的匹配值
【发布时间】:2019-03-16 12:08:04
【问题描述】:

我对 Access SQL 比较陌生。我尝试使用在线资源的代码,但每次尝试运行时都会显示错误。

我最初在 Excel 中创建了应用程序,它是 Sheet 1

Job   Starting Date     Operation              Finish Date   Run Quality 
1     2/3/2019              abc                  5/3/2019          3
1     2/3/2019              bdc                  5/3/2019          3
1     2/3/2019              adc                  5/3/2019          3
1     2/3/2019              edc                  5/3/2019          3
2     3/3/2019              abc                  7/3/2019          4
2     3/3/2019              edc                  7/3/2019          4
2     3/3/2019              adc                  7/3/2019          4

我想创建类似的

Job   Starting Date abc     bdc        adc   edc    Run Quality     Finish Date
1     2/3/2019      Done    Done       Done  Done    3                5/3/2019
2     3/3/2019      Done    Progress   Done  Done    4                7/3/2019

我最初从几个领域开始

Job abc bdc adc edc  Run Quality 
1   abc bdc adc edc     3
2   abc -   adc edc     4

代码:

SELECT *
FROM 
(
SELECT Job,Operation,Run Quality FROM [OperationTable]
)SRC
PIVOT
(
SUM(Run Quality)
FOR Job IN ([abc],[bdc],[adc],[edc])
)PIV
ORDER BY Job

Excel 图像 如果有人提出宝贵意见,那将非常有用。

【问题讨论】:

  • Access 中究竟有哪些数据 - 只是第一个表?确定记录的标准是“完成”还是“进度”。
  • 是的,第一个表在 Access 中可用。我想运行查询以获得结果。当 abc = abc , bdc = bdc , adc = adc , edc = edc ...当值与列标题匹配时,它应该说“完成”,当不匹配时应该说“进度”。

标签: ms-access vba ms-access-2010


【解决方案1】:

因此,如果 CROSSTAB 中的字段返回 Null,则显示“Progress”,否则显示“Done”。考虑:

查询1:

TRANSFORM First(Table1.Operation) AS FirstOfOperation
SELECT Table1.Job, Table1.StartingDate, Table1.FinishDate, Table1.RunQuality
FROM Table1
GROUP BY Table1.Job, Table1.StartingDate, Table1.FinishDate, Table1.RunQuality
PIVOT Table1.Operation In ("abc","bdc","adc","edc");

查询2:

SELECT Job, StartingDate, FinishDate, RunQuality,
IIf([abc] Is Null,"Progress","Done") AS abcStatus, 
IIf([adc] Is Null,"Progress","Done") AS adcStatus, 
IIf([bdc] Is Null,"Progress","Done") AS bdcStatus, 
IIf([edc] Is Null,"Progress","Done") AS edcStatus
FROM Query1;

【讨论】:

    猜你喜欢
    • 2022-07-29
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多