MYSQL查询 - 交叉表?联盟?加入?选择?我应该寻找什么?

时间:2016-02-25 07:08:48

标签: mysql

不确定我应该寻找到底是什么,所以我正在寻求帮助。

我有两个表,通过查询我需要吐出一个。这两个表如下:

交易:

TransactionID   SiteID  EmployeeName
520              2      Michael
521              3      Gene

TransactionResponse:

TransactionID   PromptMessage   Response    PromptID
520             Enter Odometer     4500     14
520             Enter Vehicle ID    345     13
521             Enter Odometer     5427     14
521             Enter Vehicle ID    346     13

但我需要的是以下内容,我们称之为TransactionSummary:

TransactionID   SiteID  EmployeeName  'Odometer'  'VehicleID'
520              2      Michael         4500         345
521              3      Gene            5427         346

“PromptID”列是“PromptMessage”的数字版本,所以我可以查询它是否更容易。

调用此查询的一个好方向是我最不希望的。对于工作示例或甚至使用此提供的示例,真正的额外功劳将是非常棒的!

1 个答案:

答案 0 :(得分:4)

对于预定义数量的可能d3.csv值,您可以使用以下查询:

PromptID

上述查询使用所谓的条件聚合:在聚合函数中使用SELECT t.TransactionID, t.SiteID, t.EmployeeName, MAX(CASE WHEN PromptID = 13 THEN Response END) AS 'VehicleID', MAX(CASE WHEN PromptID = 14 THEN Response END) AS 'Odometer' FROM Transactions AS t LEFT JOIN TransactionResponse AS tr ON t.TransactionID = tr.TransactionID AND t.SiteID = tr.SiteID GROUP BY t.TransactionID, t.SiteID, t.EmployeeName 表达式,以便有条件地考虑组内记录的子集。