RalleMedlem sedan feb. 2003210 inlägg Problemet är att spelare kan ha flera Id-nummer i tabellen. Beroende på om spelaren spelat mer än en säsong i laget.
Det brukar vara ungefär 25 st spelare per säsong i truppen.
Ett exempel, en spelare har Id-nummer 1 i tabellen. Nästa säsong har spelaren följaktligen Id-nummer 26.
Jag brukar försöka lägga dom i tröjnummerordning.
Det här gör att med den lösningen så kommer spelaren upp två gånger summerad per säsong, inte totalt som jag vill.
Min SQL ser ut så här:
strSQL3="SELECT Nr, Fornamn, Efternamn, Position, AntMatcher, Mal, Assist, Poang, Utvisning, Utlånad FROM (SELECT Nr, Fornamn, Efternamn,
Position, Utlånad, Sum(Select Count(Match) FROM MatcherSpelare WHERE (Spelare=SSK_trupp.Id)) AS AntMatcher, Sum(Select Sum(Mål)
FROM Skytteliga_Elitserien WHERE (Spelare1=SSK_trupp.Id)) AS Mal, Sum(Select Sum(Assist1+Assist2) FROM Skytteliga_Elitserien
WHERE (Spelare1=SSK_trupp.Id)) AS Assist, Sum(Select Sum(Mål+Assist1+Assist2) FROM Skytteliga_Elitserien
WHERE (Spelare1=SSK_trupp.Id)) AS Poang, Sum(Select Sum(Utvisningstid) FROM Utvisning_Elitserien
WHERE (Spelare1=SSK_trupp.Id)) AS Utvisning FROM SSK_trupp) ORDER BY Mal+Assist DESC, Mal DESC, Assist DESC"
TACKSAM för ideer.
RalleMedlem sedan feb. 2003210 inlägg Om jag frågar så här.
Kan man summera en person som har flera id'nr i tabellen?
Om ja, hur?
LarsGMedlem sedan dec. 200012 464 inlägg Tja, om du på något sätt vet vilka olika idnummer som en spelare har så ja. Annars är du rökt. Oavsett så borde du göra om datamodellen så att en spelare alltid har samma idnummer.
LaspMedlem sedan juli 200012 980 inlägg Felaktig normalisering! Om varje spelare kan ha olika id så för man ihop dem under en särskild tabell.
Vill du förklaring?
RalleMedlem sedan feb. 2003210 inlägg
LarsG skrev:
Tja, om du på något sätt vet vilka olika idnummer som en spelare har så ja. Annars är du rökt. Oavsett så borde du göra om datamodellen så att en spelare alltid har samma idnummer.
Då får jag problem eftersom allt är gjort för att visa säsong för varje spelare.
Hur ska man då göra för att visa spelare Svensson om han spelar flera säsonger i samma klubb?
Jag använder samma tabell för att ta ut truppen för den säsong som jag är intresserad av.
Sen tar jag även ut statistik baserad på spelare från den tabellen, allt utgår från säsong.
Statistiken ligger i andra tabeller.
Staistiken lär ju inte bli några problem med din lösning.
Men hur tar man ut säsong 2003-2004 på dom spelare som spelade den säsongen?
RalleMedlem sedan feb. 2003210 inlägg
Lasp skrev:
Vill du förklaring?
Eeh, menar du "Vill du ha en förklaring"?
Så, ja tack.
LaspMedlem sedan juli 200012 980 inlägg Gör en tabell med spelarenummer från datum till och med datum så kan du länka andra poster
RalleMedlem sedan feb. 2003210 inlägg
Lasp skrev:
Gör en tabell med spelarenummer från datum till och med datum så kan du länka andra poster
Jag vet inte om jag missuppfattar dig nu.
Juniorer kanske inte spelar en enda match, fast dom ingår i truppen.
Då finns det ju inget att länka till.
RalleMedlem sedan feb. 2003210 inlägg Okey, en sista fråga (tror jag), innan jag ger upp.
Går det med Select Distinct kopiera in spelare i en ny tabell?
Låt oss säga att det finns runt 100 poster i tabell trupp, dom två första posterna innehåller:
ID Förnamn Efternamn Position
1 Kalle Svensson B.
2 Anders Karlsson F.
Sen åter kommer dom som idnummer 28 o 29, nästa säsong. Det finns naturligtvis andra spelare däremellan.
Kan man då t.ex. leta på Kalle Svensson som återfinns två gånger i tabellen, spara det i en ny tabell, som då kommer att se ut så här:
Id Förnamn Efternamn Position Nr1 Nr2
1 Kalle Svensson B. 1 28
2 Anders Karlsson F. 2 29
Då får man en post per namn, istället för mellan 1-3 gånger kanske.
Utifrån det sedan ta ut en total statistiklista, genom att använda dom två sista kolumnerna.
Vad tror ni?
Om det går hur ska man skriva?
LaspMedlem sedan juli 200012 980 inlägg Eftersom det inte är olika nr per säsong kan detta inte fungera. Eller nr unika isåfall kör du bara select på namnen om de är unika som nycklar!
RalleMedlem sedan feb. 2003210 inlägg
Lasp skrev:
Eftersom det inte är olika nr per säsong kan detta inte fungera. Eller nr unika isåfall kör du bara select på namnen om de är unika som nycklar!
Jag vet inte om jag svårt att förstå dina svar.
Varje spelare i tabellen trupp får ju olika nummer för varje ny säsong.
Varje namn är ju unikt, det är efternamn som kan vara samma, så man måste alltså köra på både förnamn och efternamn, eftersom det finns några bröder som har spelat i laget.
LaspMedlem sedan juli 200012 980 inlägg Vad jag förstår av din inledande fråga vill du kunna summera.
Eftersom Nr inte var unikt kan du inte använda detta utan att bygga en kontrolltabell som länkar ett visst nr en säsong med ett helt annat nummer nästa säsong.
Då får du använda det som är gemensamt, är det efternamn samt förnamn i kombination, då är det din nyckel.
RalleMedlem sedan feb. 2003210 inlägg Okey, då förstår jag.
Jag har gjort en test-SQL för Access som jag använder, den ser ut så här:
SELECT DISTINCT SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn
FROM SSK_trupp;
Då får jag ut dom spelare som jag vill.
Hur ska jag gör sen?
Jag är hemskt TACKSAM för att du försöker hjälpa mig.
RalleMedlem sedan feb. 2003210 inlägg Nu har jag börjat komma närmare en lösning.
Jag skulle behöva hjälp med en SQL som dels visar spelare en gång oavsett hur många gånger dom finns med i tabellen "Trupp", sen hämtar idnummret respektive spelare har i tabellen.
Så här:
Förnamn Efternamn Position IdNr1 IdNr2.
Det finns spelare med fler id.
Hoppas ni förstår vad jag menar.
TACK på förhand.
Gör en tabell för Trupper där du har
SpelarId
DatumStart
DatumStop
Trupp
Så kan du får när vilken spelare spelade var.
RalleMedlem sedan feb. 2003210 inlägg Problemet är att jag måste ändra i tre andra tabeller då.
Jag har alltså på prov gjort en tabell som jag beskrev i inlägg 14.
Men jag vill automatisera det hela med en SQL, som antingen gör en ny tabell eller att med en SQL anropar den första.