J'ai les données suivantes dans ma table.Récupérer les données de la table, Utiliser les lignes comme colonnes
alt text http://img26.imageshack.us/img26/3746/productfield.png
Je veux extraire ProductId qui a ce critère,
FieldValue = 1.0 and FieldValue = 'Y' and FieldValue = 'N'
Ceci est impossible en utilisant la requête suivante
select * from MyTable
WHERE (FieldId = 50 AND (FieldValue BETWEEN '1.0' AND '1.0'))
AND (FieldId = 55 AND FieldValue = 'Y')
AND (FieldId = 60 AND FieldValue = 'N')
et je ne peux pas utiliser la requête comme celui-ci. Cette récupèreront également ProductId 103 et 104.
select * from MyTable
WHERE (FieldId = 50 AND (FieldValue BETWEEN '1.0' AND '1.0'))
OR (FieldId = 55 AND FieldValue = 'Y')
OR (FieldId = 60 AND FieldValue = 'N')
alt text http://img690.imageshack.us/img690/16/productfieldresult.png
Je ne sais pas ProductId à l'avance. En fait, je veux extraire ProductId en utilisant les critères FieldValue. Je ne peux pas utiliser ProductId dans ma clause where parce que je ne sais pas. Je connais seulement la valeur fieldValue et FieldId.
Merci pour votre aide!
Je ne ai besoin ProductID critères correspondants je l'ai mentionné. Il n'est pas nécessaire de réorganiser les colonnes d'affilée. – Kashif
Je pense que la solution de dotjoe est beaucoup plus pertinente parce que vous voulez effectuer la recherche basée sur les critères fieldvalue et pas sur fieldvalue et fieldid. (: –
En effet, c'est une bonne question: Voulez-vous filtrer uniquement sur FieldValue ou sur (FieldId, FieldValue) -combinaisons? Votre question ressemble plus à la première, mais vos exemples SQL et "bon sens" mènent vers la seconde. .. – Heinzi