2010-07-09 8 views
0

j'ai table avec échantillon de nom dans ma base de données, il a threecolumns à savoir mots, D1, D2 et il a des données comme ci-dessousaide pour sql requête

 
Words  D1  D2 D3 
pleasure 1  0 1 
question 0  0 0   
answer  0  1 1 
request  1  0 0 
scount  1  0 0 

maintenant je veux calculer le paramètre N00 qui signifie scount = 0 et aussi il faut vérifier où 0 existe en D1 et D2 alors ici pour "question" D1 = 0 D2 = 0 et scount = 0 donc le résultat devrait être 2 car scount = 0 et D1 = 0, scount = 0 et D2 = 0 cela satisfait à la fois le résultat est 2 j'ai besoin de SQL requête pour cela s'il vous plaît aider avance merci.

+0

Retirez votre tag C#. Ajouter un tag SQL (Je vais faire ces tags pour vous) Allez accepter quelques réponses à vos questions existantes. Revenir. –

+4

Alors pourquoi avez-vous tagué votre question C#, si vous avez seulement besoin du SQL? Pour être honnête, je ne comprends toujours pas exactement ce que cela est censé calculer ... quel serait le résultat si scount était de 1? –

+1

@editors: mettez des guillemets dans le mot "question" et cela commence à avoir du sens. – Anax

Répondre

2

Si je lis correctement vous voulez savoir combien de dossiers il y a avec scount = 0 et soit D1 ou D2 = 0, c'est une requête comme ceci:

SELECT COUNT(*) as N00 FROM mytable WHERE scount = 0 AND (D1 = 0 OR D2 = 0) 

sur la deuxième passe, je pense que vous essayons de compter les conditions satisfaites, soit +1 lorsque D1 = 0 et +1 quand D2 = 0, mais seulement si scount = 0, qui est quelque chose comme ceci:

SELECT (IF(D1=0,1,0)+IF(D2=0,1,0)) as N00 WHERE scount = 0 
+0

merci pour votre réponse im désolé scount est ligne pas colonne s'il vous plaît vérifier le poste que j'ai sauvegardé les modifications – user347640

+1

@ vj4u faire scount une rangée rend vos conditions trop incohérentes pour moi d'analyser. calculez-vous une valeur pour chaque ligne? Si c'est le cas, ajoutez une fausse colonne pour montrer quelle devrait être la valeur. sinon, essayez de clarifier comment N00 dépend de toutes les lignes. Où D3 entre-t-il en jeu? –

0

Votre question ne correspond pas en haut Vous faites comme si scount est une colonne mais c'est une ligne. Et votre question n'a pas de sens. Pourriez-vous partager peut-être cela dans des cas séparés comme:

A: (D1 = 0) AND (D2 = 0) -> N00 = X 
B: (D1 = 0) AND (D2 = 1) -> N00 = Y 

Je n'ai aucune idée comment tenir dans scount dans ces cas. Tu ne peux pas dire ce qui suit:

C: (D1 = 0) et (D2 = 0) ET (scount = 1) -> N00 = Z

Ceci est impossible car scount est dans une autre ligne et n'a aucun rapport avec cette rangée du tout. Reformulez votre question pour plus de clarté.