2013-01-07 2 views
1

J'ai une table nommée task_assignment.
Il a après 6 champs nommés comme:comment créer une requête SQL pour mes critères donnés?

testId,quesId,evaluatorId,studId and marks 

En fait, ce tableau est utilisé pour stocker des notes pour chaque test comprenant chacune des marques d'évaluateurs pour chaque élève par id question sage.

J'ai testId = 1, quesId = Q1 et studId = S1 comme entrée. Donc, je veux obtenir les informations suivantes dans la sélection select.ie, Both evaluators(E1,E2) marques pour l'entrée donnée.

La requête sql n'écrit pas plus d'une ligne pour cela ... Je veux que la sortie de la requête soit: 20,15 dans une seule ligne.

S'il vous plaît me guider pour sortir de cette question ...

enter image description here

+0

Je pense que vous voulez utiliser GROUP_CONCAT ... qui mettra toutes les valeurs dans une seule ligne ... http://stackoverflow.com/questions/3664393/how-to-group-mysql-rows-with-same -column-value-into-one-row – MacGyver

+0

Je suggère également de renommer votre question pour refléter ce que vous demandez. – MacGyver

+0

Votre requête n'enregistre pas plus de 1 car vous avez ajouté la condition testId = 1, quesId = Q1 et studId = S1. Je vais retourner les marques 20 pour S1 seulement. Et S2 est d'avoir des marques 15 –

Répondre

3

Je pense que vous ne serez pas en mesure d'obtenir votre sortie désirée 20, 15, car il n'y a qu'un seul enregistrement qui répond à vos critères testId = 1, quesId = Q1, studId = S1.

Mais pour répondre à votre question, voici ma question:

SELECT GROUP_CONCAT(marks) 
    FROM task_assignment 
    WHERE testId = 1 
     AND quesId = 'Q1' 
     AND studId = 'S1'; 

Je l'ai essayé dans SQL Fiddle.

EDIT 1

Si vous voulez analyser la sortie de la requête dans votre code C# pour les stocker dans des variables distinctes, vous pouvez utiliser la fonction Split:

string marks = "20, 15"; //Suppose that this value came from database 

int mark1 = Convert.ToInt32(marks.Split(',')[0]); 
int mark2 = Convert.ToInt32(marks.Split(',')[1]); 

Le code est toujours sujet aux erreurs en fonction de la valeur de la variable , assurez-vous simplement d'avoir validé la valeur.

Cela peut être sans rapport avec la question, mais toujours pour vous aider dans votre tâche, c'est ma réponse.

+1

+1 pour SQL fiddle ne le savait pas et je pense que c'est un excellent site! – domiSchenk

+1

@Kael: Merci, j'ai reeuploaded l'image ... – Saravanan

+0

@KaeL: Pourriez-vous s'il vous plaît me dire comment analyser la valeur retournée par GROUP_CONTACT (marques)? – Saravanan

Questions connexes