Ceci est ma table: Il y a 4 colonnes par exemple Si je sélectionne mois = 4 pour la première colonne de la première nourriture (Food-1) et le mois = 10 pour la colonne Second Alimentaire (Food-2), il devrait être comme suit :: p> Il montre les résultats suivants :: p> Aidez-moi dès que s'il vous plaît aussi possible .... p> p> anganbadi_id, nourriture, année, année code> et je veux comparer aliment code> colonne deux fois en fonction de deux valeurs de mois de différentes mois. p>
5 Réponses :
La clé ici est la jointure extérieure complète sur ID, les conditions de chaque sous-requête peuvent être toutes des jointures extérieures complètes vous donneront une ligne dans laquelle les identifiaires correspondent et nulles dans les colonnes adverses où elles ne font pas. Si vous voulez tous les résultats, même là où la nourriture ne remplit aucune condition dans les deux mois, alors faites une joindre à gauche dans l'une des sous-requêtes avec un identifiant Select à partir de AllfoodStable
SELECT Food1, Food2, ID FROM ( SELECT Food1, ID FROM MyTable WHERE Month = 4 ) Con1 FULL OUTER JOIN ( SELECT Food2, ID FROM MyTable WHERE Month = 10 ) Con2 ON Con1.ID = Con2.ID
SELECT DISTINCT Anganbadi_ID ,(SELECT Food FROM Anganbadi AS Anganbadi_2 WHERE (Anganbadi_1.Anganbadi_ID = Anganbadi_ID) AND (Month = 4)) AS 'Food(4)' ,(SELECT Food FROM Anganbadi AS Anganbadi_2 WHERE (Anganbadi_1.Anganbadi_ID = Anganbadi_ID) AND (Month = 10)) AS 'Food(10)' FROM Anganbadi AS Anganbadi_1 SQL-Fiddle
SELECT Anganbadi_ID, Food as food1, null as Food2 where Month = 4 UNION ALL SELECT Anganbadi_ID, null as food1, food as Food2 where Month = 10
Pourquoi le vote en bas? Cela fonctionne parfaitement pour ce que le gars a demandé!
SELECT DISTINCT Anganbadi_ID,
(SELECT Food
FROM Anganbadi
WHERE (Anganbadi_ID = A.Anganbadi_ID)
AND (Month = 4)) AS Food1,
(SELECT Food
FROM Anganbadi
WHERE (Anganbadi_ID = A.Anganbadi_ID)
AND (Month = 10)) AS Food2
FROM Anganbadi AS A
WHERE A.Month = 10 OR A.Month = 4
SQL Fiddle
Son spectacle «SubQuery revient-il plus d'une rangée», pourquoi?
SELECT
Food
DISTINCT Anganbadi_ID,
(SELECT Food
FROM Anganbadi
WHERE (Anganbadi_ID = A.Anganbadi_ID)
AND (Month = 4)) AS Food1,
FROM Anganbadi AS A
WHERE A.Month = 10 OR A.Month = 4
Tandis que cet extrait de code peut résoudre la question, y compris une explication aide vraiment à améliorer la qualité de votre message. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, et ces personnes pourraient ne pas connaître les raisons de votre suggestion de code.
Les gars de foin, pas sûr de savoir pourquoi vous étiez si rapide de marquer cette question, je pense qu'il y a 3 mauvaises réponses IMHO, mais leur gars a clairement l'anglais langue seconde (ou inférieure) et commence. Oui sa demande auparavant.