2010-04-05 4 views
0

J'essaie de faire plusieurs comptes que tout le monde travaillait accepte le premier sous-select (list1) Je reçois une erreur qui lit "Opérande devrait contenir 1 colonne (s) "Je suppose que cela a quelque chose à voir avec l'ET, mais je ne suis pas sûr de savoir comment je réparerais celui-ci.MySQL count instructions error - l'opérande doit contenir 1 colonne (s)

Select Count(list0.ustatus) AS finished_count 
     , (Select list1.ustatus, Count(*) 
       From listofupdates list1 
      Where list1.ustarted != '0000-00-00 00:00:00' 
       AND list1.ustatus != 1 
      ) AS start_count 
     , (Select Count(list2.udifficulty) 
       From listofupdates list2 
      Where list2.udifficulty = 2 
      ) AS recheck_count 
     , (Select Count(list3.udifficulty) 
       From listofupdates list3 
       Where list3.udifficulty = 4 
      ) AS question_count 
    From listofupdates as list0 
    Where list0.ustatus = 1 
+0

Je pense que vous essayez d'être bien trop intelligent dans cette requête. Pourquoi n'utilisez-vous pas une déclaration ** union ** et ** 'group by' ** pour extraire les informations dont vous avez besoin? – lexu

Répondre

2

i aggree complètement avec @Chad Birch

Après requête devrait fonctionner.

Select Count(list0.ustatus) AS finished_count 
     , (Select Count(*) 
       From listofupdates list1 
      Where list1.ustarted != '0000-00-00 00:00:00' 
       AND list1.ustatus != 1 
      ) AS start_count 
     , (Select Count(list2.udifficulty) 
       From listofupdates list2 
      Where list2.udifficulty = 2 
      ) AS recheck_count 
     , (Select Count(list3.udifficulty) 
       From listofupdates list3 
       Where list3.udifficulty = 4 
      ) AS question_count 
    From listofupdates as list0 
    Where list0.ustatus = 1 
+0

travaillé à merveille merci beaucoup! – jason

0

avec

le plus probable est le problème sur les lignes du listofupdates Listx

(où X est 0, 1, 2, 3)

Il semblerait que juste list0, list1, list2, list3 dans ces cas suffirait.

2

Dans la première sous-sélection, vous essayez de sélectionner 2 colonnes. Vous ne devez en sélectionner qu'un, vous ne pouvez pas sélectionner plusieurs colonnes à moins de faire une comparaison avec le résultat.

Voir MySQL Docs - Subquery Errors.

+0

bon conseil, merci – jason