Hallå På vilket sätt blir det inte som du har tänkt dig? Ätligen svar....tack Tomas! Eftersom du har frångått min originallösning får du nog först förklara vad kolumnerna Tack Niklas, det funkar fin fint och du har gjort mig SÅ lycklig!! No probs. Jag är med på principen om ni verkligen bara ska ha de få banorna, men var beredd på att få ångra dig om intresset blir stort och antalet banor börjar växa... Hej igen Niklas och tack för snabbt svar.Summering som presenteras i en och samma datagrid
Skulle vilja presentera en gridview där det även summeras från en annan tabell, något luddig fråga men jag skall försöka förklara:
I grovt så ser min databas struktur enligt,
tblMembers
PersId PK
Fname
Lname
HCP
Club
MemberTime
Email
tblPlayEvent
PlayEventId PK
SuggestBy (Relation med tblMembers på PersId)
PlayTime
Track
Holes
tblPlayAcceptance
PlayAcceptanceId PK
PlayAcceptance
PersId (Relation med tblMembers)
PlayEventId (Relation med tblPlayEvent)
Som synes så är det medlemar som kan lägga upp en "spelförfråga" som andra kan anmäla sig till. Då spelare skall anmäla sig så går de till en sida som jag alltså vill gärna presentera en gridview där det visas namn (på den som lagt förfrågan),speltid, bana,holes ect men även en summering på hur många som har anmält sig till varje spelförfrågning.
Hoppas på att ni är med på vad jag menar.
Jag har provat med:
" SELECT PlayEvent.PlayEventId As 'ID',PlayTime As 'Speldag',Track As 'Bana' , COUNT(*) AS 'Antal Anmälda' " & _
" FROM PlayEvent INNER JOIN PlayAcceptance ON PlayEvent.PlayEventId = PlayAcceptance.PlayEventId " & _
" WHERE PlayAcceptance = '" & strOk & "'" & _
" GROUP BY PlayEvent.PlayEventId,PlayTime,Track ORDER BY PlayEvent.PlayEventId,PlayTime,Track "
Men det blir inte som jag tänkt då ett spel event har fler än 1 anmälningar.
Jag skall verkligen understryka att jag inte är någon guru och behöver lite hjälp till detta.
Mvh,
Thomas
Sv: Summering som presenteras i en och samma datagrid
Sv:Summering som presenteras i en och samma datagrid
=)
Dock ser att jag har skrivit lite luddigt!! Inte så undra på att ingen svarat!
Den frågan som jag visar funkar fint för att redovisa vilka spelförfrågar som har anmälningar. Jag skulle vilja även vilja ha dit namnet på den som postat förfrågan vilket betyder att jag måste göra en JOIN på min Member tabell för att komma åt den informationen. Men då jag testar detta så får jag ingen "träff"?
Mvh,
ThomasSv: Summering som presenteras i en och samma datagrid
PlayAcceptanceId PK
PlayAcceptance
Står för.
Sen tycker jag att du bör reverta
Track
Holes
till en separat Track-tabell. Du <b>kommer</b> få ångra dig annars. Du kommer vilja lägga till fler Track-kolumner (länk till hemsida, pris, etc.). Som det är nu så kommer en bana som utökas från 9 till 18 hål göra att det blir rörigt i tabellen. Sen kanske du ska överväga att slänga på en "MaxPeople"-kolumn på PlayEvent.
Om vi återgår till originalfrågan så verkar du vilja göra två saker på samma gång. Antingen vill du ha ut varje enskild medlem eller så vill du ha ut antalet.
Vill du ha ut antalet så är det i princip så här du bör göra
SELECT PlayEvent.PlayEventID, PlayEvent.Track, ..., b.Participants FROM
PlayEvent LEFT JOIN
(SELECT PlayEventID, COUNT(*) AS Participants FROM PlayAcceptance GROUP BY PlayEventID) b
ON PlayEvent.PlayEventID = b.PlayEventIDSv:Summering som presenteras i en och samma datagrid
Ledsen att jag frångick din lösning men vad som inte framkom från början var att det skulle vara väldigt enkelt! En användare skulle alltså genom "Sin sida" kunna lägga upp en fråga om spel (tblPlayEvent), där denna väljer ett datum från en "Calender", från en dropdownlist väljer vilken bana alt. skriver i fritext annan bana som spelet ska äga rum. Men eftersom vi mest spelar runt de 4 närmaste banorna i vårat län så har jag dessa i en dropdown.
I min Master.Page kollar jag om det finns några spel-förfrågningar. Detta summeras och presenteras ex "Spelförfrågningar 3 st", detta är en länk som tar användaren till en sida där alla förfrågningar presenteras. Jag stäkker en COUNT fråga mot PlayEvent tabellen.
Vidare så kan man från denna sida klicka på en knapp Boka dvs man vill anmäla sig till ett eller flera spel. Kankse blir mycket klickande, men eftersom man måste vara inloggad då man skall boka (givetvis för att veta vem som bokar) så har jag valt att göra så.
På denna boksida vill jag alltså ha en grid som visar vem som har lagt in förfrågan, hur många som är bokade, hål , bana, speldag etc, den frågan som du hjälpte mig med Niklas, tusen tack!!
Gällande din fråga om PlayAcceptance så har jag helt enkelt ha en tabell som håller vem som tackar ja till viken spelförfrågan (hoppas du är med).
Dina förslag är kanon och jag är med på vad du menar. Men som sagt allt ska vara väldigt enkelt!
Som sagt jag är tacksam till att du tog dig tid, det löste min fråga hur man i en och samma tabell presenterar vem som postat inlägget, bana, hål, och framför allt hur många som är anmälda till varje spelförfrågan!
Tack!
Mvh,
ThomasSv: Summering som presenteras i en och samma datagrid
Men jag köper fortfarande inte första biten.
Jag tycker att det här:
PlayAcceptanceId PK
PlayAcceptance
PersId (Relation med tblMembers)
PlayEventId (Relation med tblPlayEvent)
lika gärna kan vara
PersId (Relation med tblMembers)
PlayEventId (Relation med tblPlayEvent)
med en
PK(PersId, PlayEventId)
Står du med i tabellen vid ett event så har du accepterat, annars har du inte det. Jag förstår inte vad de två ytterligare kolumnerna är till för.Sv:Summering som presenteras i en och samma datagrid
Du har säkert rätt , men faktum är att det var så längs sedan jag håll på med databaser och struktur på dessa så ibland krånglar jag nog till det och slänger med tabeller som har fler fält än nödvändigt! Funkar alldeles säkert med:
PlayAcceptanceId PK
PlayAcceptance
PersId (Relation med tblMembers)
PlayEventId (Relation med tblPlayEvent)
Och visst...vaför sakll man ha PlayAcceptance då det faktiskt är att finns det värden där så har man accepterat! Helt rätt!
Tack för din hjälp i vaje fall!
Mvh,
Thomas