webForumDet fria alternativet

QUERY-fråga

3 svar · 627 visningar · startad av HammerBoy

HammerBoyMedlem sedan feb. 2006144 inlägg
#1

Tänk er följande tabell:

tblLog
Id Name Time
1 Anders 2011
2 Anders 2010
3 Bosse 2010
4 Bosse 2010
5 Conny 2010
6 Conny 2011
7 Conny 2009
8 David 2010
9 David 2009

Jag vill skapa en sökning där jag kan få ut alla Name som endast har Timestamps som är äldre än 2011 så svaret jag vill få ut i det här exemplet är följande:

Name
Bosse
David

Nu har jag stångat min panna blodig men kommer inte i mål samtidigt som jag gissar att det säkerligen sitter någon här som rätt enkelt kan pilla ihop denna query och ge mig en fin julklapp :)

(Tabellen är självklart konstruerad för att förenkla frågeställningen)

HammerBoyMedlem sedan feb. 2006144 inlägg
#2

Ibland är en god lunch allt som behövs. Jag lyckades få ihop detta till slut.
God Jul!

@ndersMedlem sedan juni 200032 969 inlägg
#3

Posta gärna lösningen och markera tråden som löst.

Mvh

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

En lösning är...

SELECT name FROM tblLog
WHERE name NOT IN (
  SELECT name FROM tblLog WHERE Time >= 2011
) AND Time < 2011
GROUP BY Name

Det ska även gå att använda mönstret self left join/is null, vilket möjligen är bättre ur prestandasynpunkt.

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)