2017-08-24 59 views
1

开发一个数据库来存储从模拟我得到这个不同机型的测试结果:image结果集包含行的每个不同实例的一列。对于MySQL的每个状结构

参见“试验”一栏是指与一个或多个“莫德洛测试特定的方案“或模型,”resultado“是该测试的结果。

事情是:我需要一个单一的查询,对于每个“测试”返回每个“modelo”的结果,那就是,有一个未定义数目的“modelo”。从这样的查询结果会是这样的:

image2

我怎么能这样做呢?我尝试过没有成功的团队。另外,如果可能的话,请列出查询中用于进一步学习的操作。

回答

0

您的问题与本主题中解释的问题非常相似:Simple way to transpose columns and rows in Sql?。 从技术上讲,您需要生成一个转置sql查询。

(草案)

SELECT test, 
     COALESCE(MAX(CASE WHEN modello = 1 THEN resultado END), null) modello1, 
     COALESCE(MAX(CASE WHEN modello = 2 THEN resultado END), null) modello2, 
     COALESCE(MAX(CASE WHEN modello = 3 THEN resultado END), null) modello3 
FROM your_table 
GROUP BY test 

的问题是,这一部分

COALESCE(MAX(CASE WHEN modello = 1 THEN resultado END), null) modello1, 
COALESCE(MAX(CASE WHEN modello = 2 THEN resultado END), null) modello2, 
COALESCE(MAX(CASE WHEN modello = 3 THEN resultado END), null) modello3 

应动态生成如果modelly值的数目是没有真正受到限制。如果它有限,则可以构建包含模型列的所有值的静态查询。

+0

谢谢,我可以用它来解决我的问题,通过做应用程序中的动态部分,我所需要做的就是查询不同的(modelo),并为它们中的每一个生成一个这样的行。对? –

+0

是的,它是正确的。 –

相关问题