webForumDet fria alternativet

Hämta nästa omgång ur matchdatabas

Databaser & SQLur Databashanterare & SQL

2 svar · 1 204 visningar · startad av asp

Medlem sedan aug. 2002733 inlägg
Frågan#1

Hej,

Jag har ett litet SQL-problem nedan. Jag skulle vilja hämta nästa omgång där ingen match har börjat än.

Exempel på hur tabellen ser ut:

ID  Teams       Date    Round
1   AIK-IFK     15/5    1
2   GAIS-ÖIS    17/5    1
3   IFK-ÖIS     22/5    2
4   AIK-GAIS    25/5    2
5   GAIS-IFK    29/5    3
6   ÖIS_AIK     31/5    3

Exempel:
Om det är 14/5 ska den ge första omgången (1).
Om det är 16/5 ska den ge andra omgången (2).
Om det är 21/5 ska den ge andra omgången (2).
Om det är 22/5 ska den ge tredje omgången (3).
o.s.v.

Hoppas ni förstår vad jag menar annars får ni säga till så ska jag förklara ytterligare.

Tack på förhand!

Medlem sedan dec. 20025 483 inlägg
#2

Utan att veta vilket DBMS du använder:

select id
     , teams
     , date
     , round
  from tbl
 where round
     = ( select top 1 round
           from ( select t2.round
                       , min(t2.date) as date
                    from tbl t2
                  group
                      by t2.round
                  having date() < min(t2.date)
                  order
                      by 2 ) as x)
Medlem sedan aug. 2002733 inlägg
#3

Tack Peter S!

Jag glömde nämna detta, jag kör mySQL. Min senaste inloggning här var april 2011 så man har lite glömt av rutinerna... :)

Jag modifierade koden en aning då jag egentligen bara behöver siffran på vilken omgång det är:

select min(min_round_no)
from
	(select round_no as min_round_no
	from game
	group by round_no
	having now() < min(start_date)) t
137 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)