mboost-dp1
data fra mssql paa en lidt speciel maade!
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
Hej, jeg har faaet en opgave jeg simpelthen ikke kan finde en logisk maade at loese paa, har proevet mig lidt frem uden held. Jeg har ikk proevet at soege paa google da jeg simpelthen ikke ved hvad jeg skal soege efter.
jeg har en tabel der hedder Testimonials i mssql som indeholder felterne ID, Member_ID, Branch_ID og Content
Kunden vil have mig til at goere saa at der bliver vist en liste over alle de her udtalelser fra studerende paa hans skole fra Testimonials. Branch_ID har en relation til tabellen Branches og i den er der records med ID fra 1-8. Han vil saa have at foerste visning er med branch_id 1 og det naeste 2, 3, 4, 5, 6, 7, 8 og saa forfra igen.
Haaber i kan hjaelpe! :)
webloesningen er skrevet i vb .net 3.5
jeg har en tabel der hedder Testimonials i mssql som indeholder felterne ID, Member_ID, Branch_ID og Content
Kunden vil have mig til at goere saa at der bliver vist en liste over alle de her udtalelser fra studerende paa hans skole fra Testimonials. Branch_ID har en relation til tabellen Branches og i den er der records med ID fra 1-8. Han vil saa have at foerste visning er med branch_id 1 og det naeste 2, 3, 4, 5, 6, 7, 8 og saa forfra igen.
Haaber i kan hjaelpe! :)
webloesningen er skrevet i vb .net 3.5
Er det ikke bare et JOIN af Branches på Branch_ID
Som så er arrangeret efter Branch_ID.
Derudover synes jeg det er dårlig navngivning af felter, Det er så meget mere overskueligt at benytte CamelCase, istedet for underscores, samt at 'Content' er et reserveret nøgleord!
Og du bør navngive Id som TabelnavnId , da det er meget nemmere at lave joins, uden at skulle tilføje den fulle sti, samt evt. at blive tvunget til at lave et alias for at hente begge felter ud.
FROM [Testimonials]
JOIN [Branches]
ON [Testimonials].[Branch_ID] = [Brances].[ID]
Som så er arrangeret efter Branch_ID.
FROM [Testimonials]
JOIN [Branches]
ON [Testimonials].[Branch_ID] = [Brances].[ID]
ORDER BY [Branch_ID]
Derudover synes jeg det er dårlig navngivning af felter, Det er så meget mere overskueligt at benytte CamelCase, istedet for underscores, samt at 'Content' er et reserveret nøgleord!
Og du bør navngive Id som TabelnavnId , da det er meget nemmere at lave joins, uden at skulle tilføje den fulle sti, samt evt. at blive tvunget til at lave et alias for at hente begge felter ud.
Til mit forsvar saa er det ikke mig der har skruet tabellerne sammen - men ja jeg foretraekker at bruge CamelCase.
on topic:
Jeg er klar over at jeg skal lave en join paa de to tabeller men hvordan fanden faar jeg dem til foerst at vise _ET_ resultat med branch id 1 derefter et med id 2 saa 3, saa 4, saa 5, saa 6, saa 7, saa 8, saa 1 igen osv osv osv
on topic:
Jeg er klar over at jeg skal lave en join paa de to tabeller men hvordan fanden faar jeg dem til foerst at vise _ET_ resultat med branch id 1 derefter et med id 2 saa 3, saa 4, saa 5, saa 6, saa 7, saa 8, saa 1 igen osv osv osv
Maaske skal du joine noget mere og saa ORDER BY noget andet fra Brances.
Hvordan ser din Brances table ud ?
Hvordan ser din Brances table ud ?
Altså:slemmebirk (3) skrev:Jeg er klar over at jeg skal lave en join paa de to tabeller men hvordan fanden faar jeg dem til foerst at vise _ET_ resultat med branch id 1 derefter et med id 2 saa 3, saa 4, saa 5, saa 6, saa 7, saa 8, saa 1 igen osv osv osv
1 A 999
1 A 666
1 A 333
2 B 888
2 B 555
2 B 222
3 C 777
3 C 444
3 C 111
Istedet for
1 A 999
2 B 888
3 C 777
1 A 666
2 B 555
3 C 444
1 A 333
2 B 222
3 C 111
Det er jo bare at gruppere på in Branch_ID. Og da SQL er et funktionelt sprog er det ligeså let som det lyder:
GROUP BY Branch_ID
og done :)
Jeg kan ikke lige gennemskue hvordan GROUP BY skulle løse det sorterings problem.
Alternativt approach:
Alternativt approach:
1>
2> SELECT id,branchid,otherstuff FROM testimonials
3> GO
id branchid otherstuff
----------- ----------- ----------
1 2 bla bla 1
2 3 bla bla 2
3 1 bla bla 3
4 3 bla bla 4
5 1 bla bla 5
6 1 bla bla 6
7 3 bla bla 7
8 2 bla bla 8
(8 rows affected)
1> SELECT id,branchid,otherstuff,(SELECT COUNT(*) FROM testimonials t2 WHERE t2.
branchid = t1.branchid AND t2.id < t1.id) AS n FROM testimonials t1 ORDER BY n,
branchid
2> GO
id branchid otherstuff n
----------- ----------- ---------- -----------
3 1 bla bla 3 0
1 2 bla bla 1 0
2 3 bla bla 2 0
5 1 bla bla 5 1
8 2 bla bla 8 1
4 3 bla bla 4 1
6 1 bla bla 6 2
7 3 bla bla 7 2
(8 rows affected)
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.