Alleen uitkomst geven wanneer twee kolommen gelijk zijn

Status
Niet open voor verdere reacties.

Nadia111

Gebruiker
Lid geworden
13 mrt 2014
Berichten
29
Ik heb een query gemaakt (zie hieronder). Echter geeft hij te veel data weer. Ik heb namelijk alleen de rijen met data nodig waarin H en I gelijk aan elkaar zijn. Heeft iemand een idee hoe ik dit kan aangeven in mijn Design view?
hopelijk kan iemand mij helpen, groetjes en alvast bedankt



a b c d e f g h i
2 M 3 4 3 4 1 2008 2010
2 M 3 4 3 4 1 2009 2010
2 M 3 4 3 4 1 2010 2010
2 M 3 4 3 4 1 2011 2010
2 M 3 4 3 4 1 2012 2010
11 F 2 13 2 13 1 2008 2009
11 F 2 13 2 13 1 2009 2009
11 F 2 13 2 13 1 2010 2009
11 F 2 13 2 13 1 2011 2009
11 F 2 13 2 13 1 2012 2009
23 F 11 25 11 25 1 2008 2013
23 F 11 25 11 25 1 2009 2013
23 F 11 25 11 25 1 2010 2013
23 F 11 25 11 25 1 2011 2013
23 F 11 25 11 25 1 2012 2013
26 F 10 38 10 38 1 2008 2011
26 F 10 38 10 38 1 2009 2011
26 F 10 38 10 38 1 2010 2011
26 F 10 38 10 38 1 2012 2011
44 F 18 71 18 71 1 2009 2009
52 F 41 45 41 45 1 2008 2009
52 F 41 45 41 45 1 2009 2009
52 F 41 45 41 45 1 2010 2009
52 F 41 45 41 45 1 2011 2009
52 F 41 45 41 45 1 2012 2009
53 F 37 52 37 52 1 2008 2009

H en I zijn de laatste twee kolommen (de jaren)
 
Laatst bewerkt door een moderator:
Kun je de query zelf laten zien?
 
dit is de query:

SELECT [Dispersal:all dispersers].BirdID, [Dispersal:all dispersers].Sex, [Dispersal:all dispersers].MinOfTerrnr, [Dispersal:all dispersers].MaxOfTerrnr, TerrDistMatrix.Terr1, TerrDistMatrix.Terr2, TerrDistMatrix.Distance, TerrDistMatrix.Year, [Dispersal:all dispersers].DispersalYear
FROM TerrDistMatrix RIGHT JOIN [Dispersal:all dispersers] ON (TerrDistMatrix.Terr2 = [Dispersal:all dispersers].MaxOfTerrnr) AND (TerrDistMatrix.Terr1 = [Dispersal:all dispersers].MinOfTerrnr)
GROUP BY [Dispersal:all dispersers].BirdID, [Dispersal:all dispersers].Sex, [Dispersal:all dispersers].MinOfTerrnr, [Dispersal:all dispersers].MaxOfTerrnr, TerrDistMatrix.Terr1, TerrDistMatrix.Terr2, TerrDistMatrix.Distance, TerrDistMatrix.Year, [Dispersal:all dispersers].DispersalYear
HAVING ((([Dispersal:all dispersers].BirdID)<1000 Or ([Dispersal:all dispersers].BirdID)>1200))
ORDER BY TerrDistMatrix.Distance;
 
En om alvast een idee te geven: (ik heb je tabel gekopieerd, dus de veldnamen zijn je kolomletters) ziet je query er zo uit:
Code:
SELECT DISTINCT a.a, a.b, a.c, a.d, a.e, a.f, a.g, a.h, b.i
FROM Blad1 AS a, Blad1 AS b
WHERE (((a.a)=[b].[a]) AND ((a.h)=[b].[i]));
 
Met een query met Outer Join wordt het een beetje lastig, omdat je query de tabellen dubbel nodig heeft. Althans: de output die je nu hebt laat zich vermoed ik lastig 'ontdubbelen' al zou dit wellicht kunnen werken:
Code:
SELECT 
	[Dispersal:all dispersers].BirdID, 
	[Dispersal:all dispersers].Sex, 
	[Dispersal:all dispersers].MinOfTerrnr, 
	[Dispersal:all dispersers].MaxOfTerrnr, 
	TerrDistMatrix.Terr1, 
	TerrDistMatrix.Terr2, 
	TerrDistMatrix.Distance, 
	TerrDistMatrix.Year, 
	[Dispersal:all dispersers].DispersalYear
FROM 
	TerrDistMatrix RIGHT JOIN [Dispersal:all dispersers] ON 
	(TerrDistMatrix.Terr2 = [Dispersal:all dispersers].MaxOfTerrnr) AND 
	(TerrDistMatrix.Terr1 = [Dispersal:all dispersers].MinOfTerrnr)
WHERE 
	(([Dispersal:all dispersers].BirdID<1000 Or [Dispersal:all dispersers].BirdID>1200) AND 
	(TerrDistMatrix.Year = [Dispersal:all dispersers].DispersalYear))
GROUP BY 
	[Dispersal:all dispersers].BirdID, 
	[Dispersal:all dispersers].Sex, 
	[Dispersal:all dispersers].MinOfTerrnr, 
	[Dispersal:all dispersers].MaxOfTerrnr, 
	TerrDistMatrix.Terr1, 
	TerrDistMatrix.Terr2, 
	TerrDistMatrix.Distance, 
	TerrDistMatrix.Year, 
	[Dispersal:all dispersers].DispersalYear
ORDER BY TerrDistMatrix.Distance;
Zonder db is het uiteraard lastig testen :)
 
wauw super, volgens mij klopt ie nog niet helemaal (ben volgens mij een paar datapunten kwijt :S) maar ik kan hier wel mee verder!!! bedankt :D
 
Je geeft in je voorbeeld 9 velden (a t/m i) en die tel ik in jouw query ook :)
 
Haha nee bedoel meer dat ik had gedacht dat ik meer dispersers had (want na de analyse heb ik er nog 96 over). Maar waarschijnlijk zit er ergens anders een begin fout (bij mij zelf). Maar ik kan nu tenminste weer verder :) Als je het niet erg vind ga ik misschien wel vaker je hulp inroepen!!! groetjes
 
Daar is HelpMij voor :). Als de oplossing straks werkt, mag je de vraag nog op Opgelost zetten (Linkje bovenaan in de blauwe balk). En anders zien we de volgende vraag wel weer verschijnen ;)

P.s. Ik zie dat je nieuw bent vandaag; alsnog welkom :)
 
Hey,
Nog bedankt voor het vorige antwoord. Ik heb echter alweer een nieuwe vraag. Waarschijnlijk een erg makkelijke, maar ik zie het gewoon even niet meer! Ik heb een tabel met x aantal kolommen en bijv. 10 rijen. Kolom Y heeft de getallen 1 t/m 20. Nu wil ik dat de rij, waar getal 3, 5 en 10 in kolom Y voorkomen totaal uit mijn analyse halen. Dit betekend dat ik nog 7 rijen overhoud.
Hoe kan ik dit doen? Ik heb al zoveel dingen geprobeerd, zoals Not "3","5","10" of Not ("3","5","10") of Not Not "3,5,10". Maar al deze opties geven steeds foutmeldingen.

heel erg bedankt :) groetjes Nadia
 
Om te beginnen is de syntax die je gebruikt (althans: laat zien) fout. Je gebruikt een tekstnotatie voor een veld met getallen. Gaat niet werken. Getallen moet je filteren als getal, en tekst uiteraard als tekst. Tenzij je het veld hebt ingesteld als Tekst, dan is het uiteraard wel goed. Dat zou namelijk best kunnen, want alle varianten die je laat zien zijn inderdaad fout opgezet. Hier 2 goede methodes: (uitgaande van getal, niet tekst).
Methode 1:
Code:
Not 3 And Not 5 And Not 10
Methode 2:
Code:
Not In(3;5;10)
 
Hmm hij doet het nog steeds niet, krijg elke keer Data type mismatch in criteria expression..... Ik ben er al uren mee bezig! Sorry voor al deze vragen
 
Zonder vragen zou HelpMij een saai forum zijn :). Wellicht gebruik je het veld toch als tekstveld. In dat geval zou je er de quootjes omheen moeten zetten.

Code:
Not In("3";"5";"10")
Of, gezien je eigen code waarin je komma's gebruikt, heb je de komma als lijstscheidingsteken, en dan moet het zo:
Code:
Not In(3,5,10)
 
HIJ DOET HET :D, oke, kan ik weer een stapje verder!!!!! Heel erg bedankt, en waarschijnlijk tot snel :)
 
Welke variant heb Je gebruikt? En kun je de vraag nog op <Opgelost> Zetten?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan