SQL组按列值进入行

时间:2012-07-24 16:58:27

标签: mysql sql row pivot

我有一个软件可以为我提供类似的数据。

| Date |   Programme    | Groupe | Rat | Actif | RFS | Inactif |  Relevance  |   Etape  | 
|120227| ANS-FR2-85s TO |   5    |  9  |  20   |  5  |   10    | Rats finaux | Training |
|120228| ANS-FR2-85s TO |   5    |  9  |  10   |  3  |    4    | Rats finaux | Training |
|120229| ANS-FR2-85s TO |   5    |  9  |  100  | 20  |   50    | Rats finaux |    ShA   |
|120230| ANS-FR2-85s TO |   5    |  9  |  100  | 20  |   50    |    Exclus   | Training |
|120231| ANS-FR2-85s TO |   5    |  9  |  100  | 20  |   50    | Rats finaux | Training |
|120227| ANS-FR2-85s TO |   5    | 10  |  20   |  5  |   10    | Rats finaux | Training |
|120228| ANS-FR2-85s TO |   5    | 10  |  10   |  3  |    4    | Rats finaux | Training |
|120229| ANS-FR2-85s TO |   5    | 10  |  100  | 20  |   50    | Rats finaux |    ShA   |
|120230| ANS-FR2-85s TO |   5    | 10  |  100  | 20  |   50    |    Exclus   | Training |

我希望能够创建一个视图根据'Rat'值重新组合'RFS'并应用'Etape的标准' '和'相关'

标准

  • WHERE Relevance ='Rats finaux'
  • 在哪里Etape ='训练'

注意行数是可变的也很重要。所以我可以在这个例行2或3行,但也最多20行。我认为也许一个循环可能很棒,而不是调用每个特定的行。

所以它看起来像这样:

| Groupe | Rat | D1  | D2  |  D3  |
|   5    |  9  |  5  |  3  |  20  |
|   5    | 10  |  20 | 10  |      |

非常感谢

1 个答案:

答案 0 :(得分:0)

可用数据变为(在条件之后):

 Date      Programme         Groupe      Rat     Actif   RFS     Inactif      Relevance        Etape  
120227   ANS-FR2-85s TO        5          9       20      5        10        Rats finaux     Training 
120228   ANS-FR2-85s TO        5          9       10      3         4        Rats finaux     Training 
120231   ANS-FR2-85s TO        5          9       100    20        50        Rats finaux     Training 

120227   ANS-FR2-85s TO        5         10       20      5        10        Rats finaux     Training 
120228   ANS-FR2-85s TO        5         10       10      3         4        Rats finaux     Training 

我们如何制作D1,D2,D3 ......?我看到,对于第5组,第9组,你使用D1,D2,D3的RFS值......但对于第5组,RAT 10,你使用行数据的Actif值。如何以及为什么这样做?最终你可能需要某种数据透视表(Mysql没有),也可能需要动态列。我不知道。让我们先尝试理解您的数据需求......

另一个链接: http://www.jasny.net/articles/creating-a-cross-tab-in-mysql/

是你想要的东西吗?我可以提供更多帮助,但我不了解您如何获得最终结果作为示例。