2016-06-10 2 views
1

Fondamentalement, j'ai un tableau avec une colonne de notes et je veux générer une colonne qui cherche quelques conditions et crache un score basé sur combien de conditions ont été remplies en regardant chaque note. Je peux aller à ce sujet dans le mauvais sens alors s'il vous plaît n'hésitez pas à tangenter.SQL générer la colonne score à partir du test multi-condition sur une cellule de notes

Interrogation jusqu'à présent:

SELECT 
SUM(
    SUM(case when notes like '%Tuna%' THEN 1 ELSE 0 END) 
    SUM(case when notes like '%apple%' THEN 1 ELSE 0 END) 
    SUM(case when notes like '%burrito' THEN 1 ELSE 0 END) 
      --  ) as score 
,Name 
,Date 
,Notes 
FROM food_jrnl 

Exemple Table food_jrnl:

Name Date Note 
Peter 6/1/2016 Just mountain Dew and cheatos 
Jimmy 5/25/2016 Chocolate cake, cheesy potatoes and ketchup 
Sophie 5/16/2016 just grits and tuna!! 
Bianca 5/9/2016 Chocolate milk, Ahi tuna, Gala apple 
Sam 4/23/2016 Tuna salad 
Josh 1/10/2016 Had a banana and apple with orange juice 

Ce que j'espère créer:

Score Name Date Note 
0 Peter 6/1/2016 Just mountain Dew and cheatos 
0 Jimmy 5/25/2016 Chocolate cake, cheesy potatoes and ketchup 
1 Sophie 5/16/2016 just grits and tuna!! 
2 Bianca 5/9/2016 Chocolate milk, Ahi tuna, Gala apple 
1 Sam 4/23/2016 Tuna salad 
0 Josh 1/10/2016 Had a banana and apple with orange juice 

Répondre

1

En fait, vous n'avez pas besoin d'utiliser pour sum ceci:

SELECT 
    case when notes like '%Tuna%' THEN 1 ELSE 0 END + 
    case when notes like '%apple%' THEN 1 ELSE 0 END + 
    case when notes like '%burrito' THEN 1 ELSE 0 END as score 
    ,Name 
    ,Date 
    ,Notes 
FROM food_jrnl 
+0

Je n'avais pas réalisé que l'utilisation de sommes multiples pouvait être additionnée, mais cela a du sens quand je le vois. Aussi ne savait pas qu'il fallait un groupe par pour toutes les colonnes! tu es le meilleur! - Je dois poster après avoir changé de réponse. Le cas où est beaucoup plus maigre, n'a pas besoin du groupe par! Merci! – jbird468