Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[SQL][ASP] Rechten Tabel

Pagina: 1
Acties:

  • LangeJanneman
  • Registratie: Juni 2007
  • Laatst online: 22-07-2021
Hallo,

Ik heb een probleem:

Met een sqlDataReader probeer ik een tabel te maken uit 2 tabellen:

GebruikerSysteembeheerderSupervisor
Regel 1Wel toegangWel toegangWel toegang
Regel 2Geen toegangWel toegangWel toegang
Regel 3Geen toegangGeen toegangWel toegang
Regel 4Wel toegangGeen toegangWel toegang


Deze gegevens haal ik uit 2 tabellen nl: 1 waar de regels in staan en 1 waar de rangen instaan.

Mijn probleem: Als ik een datareader open om de regels op te halen kan ik in die datareader niet nog een reader openen om de rangen erachter te plaatsen.

Ik ben PHP gewend en daar kan dit wél. Wie kan mij een hint geven hoe dit op te lossen is?

(De rangen zijn ook dynamisch dus voor iedere rang een kolom aanmaken is geen oplossing.)

Ik kom er niet uit. De SQL op zichzelf is geen probleem maar wel de manier waarop te implementeren.

[ Voor 3% gewijzigd door LangeJanneman op 31-08-2007 16:01 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Vergeet de datareader, deze is om data op te halen, niet om data te presenteren.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • LangeJanneman
  • Registratie: Juni 2007
  • Laatst online: 22-07-2021
Daar was ik al ongeveer achter. Heb je misschien ook een manier hoe het wél moet toevallig?

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

LangeJanneman schreef op vrijdag 31 augustus 2007 @ 16:03:
Daar was ik al ongeveer achter. Heb je misschien ook een manier hoe het wél moet toevallig?
Je kan een datatable maken, kruistabel in je SQL (afhankelijk van de database), een eigen class maken met de betreffende rangen, in HTML een tabel genereren en meerdere keren deze 'doorlopen', etc.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Nu online
Haal alle gegevens in één keer op in een DataTable. Zorg ervoor dat die gegevens op relevante columns gesorteerd zijn, loop over die gegevens en zorg ervoor dat je de gewenste gegevens in het gewenste formaat uithaalt.

https://fgheysels.github.io/


  • LangeJanneman
  • Registratie: Juni 2007
  • Laatst online: 22-07-2021
Als ik dus alle gegevens in één tabel moet zetten moet ik PIVOT gebruiken. Ik heb al veel fora en google gezocht en bekeken maar nergens kan ik een duidelijke uitleg vinden. Ook met de MSDN kom ik er niet uit. In ACCESS lukt het wel maar als ik een soortgelijke SQL gebruik in MSSQL 2005 dan krijg ik fouten op TRANSFORM en PIVOT. De uitleg op de meeste pagina's is:

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
SELECT <non-pivoted column> ,

    [first pivoted column] AS <column name> ,

    [second pivoted column] AS <column name> ,

    ...

    [last pivoted column] AS <column name>

FROM 

    ( <SELECT query that produces the data> ) 

    AS <alias for the source query>

PIVOT 

( 

    <aggregation function>( <column being aggregated> )

FOR 

[<column that contains the values that will become column headers>] 

    IN ( [first pivoted column] , [second pivoted column] ,

    ... [last pivoted column] )

) AS <alias for the pivot table>

<optional ORDER BY clause>

SELECT <non-pivoted column>, 

    [first pivoted column] AS <column name>, 

    [second pivoted column] AS <column name>, 

    ... 

    [last pivoted column] AS <column name> 

FROM 

    (<SELECT query that produces the data>) 

    AS <alias for the source query>

PIVOT 

( 

    <aggregation function>(<column being aggregated>) 

FOR 

[<column that contains the values that will become column headers>] 

    IN ( [first pivoted column], [second pivoted column], 

    ... [last pivoted column]) 

) AS <alias for the pivot table> 

<optional ORDER BY clause> 


Als ik deze omzet naar mijn eigen toestand krijg ik telkens een fout op "...Error near TRANSFORM...".
In Access kom ik tot de volgende query:

SQL:
1
2
3
4
5
TRANSFORM Count(Rechten.regel) AS AantalVanregel
SELECT Rechten.Id, Count(Rechten.regel) AS [Totaal regel]
FROM Rechten
GROUP BY Rechten.Id
PIVOT Rechten.groep;


Dit is een simpele code maar MS SQL 2005 snapt hem niet.

Wie kan me hier bij helpen?

(btw, een "kant en klare" ASP pagina werkt niet omdat ik AJAX gebruik op een eigen manier en deze zich erin verslikt)

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Je bent volgens mij op zoek naar een join in SQL.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...

Pagina: 1