Avatar billede herman01753 Nybegynder
20. marts 2003 - 12:31 Der er 7 kommentarer og
1 løsning

skjul kolonner i visning fra select statement

hvordan undgår man at vise en kolonne som man bruger til sortering, men ikke ønsker fremvist.
jeg ønsker at sortere mine data efter emloyeeid, men har ingen interesse i at brugeren af DB ser denne kolonne


select distinct employees.employeeid, employees.firstname, employees.lastname, employees.city
from employees, orders
where orders.EmployeeID in
(select employees.employeeid from employees, orders
where orders.orderdate <'1996-08-01' and orderdate >'1996-06-30' ) order by employees.firstname
Avatar billede pierrehusted Nybegynder
20. marts 2003 - 12:34 #1
Hvad viser du data igennem ?? 

Hvis brugerne f.eks. har adgang gennem Query analyzer eller lignende, så kan de se alt hvad deres brugernavn giver adgang til.
Hvis du viser data gennem en web-server, så kan du jo bare undlade at vise den kolonne....
Avatar billede erikjacobsen Ekspert
20. marts 2003 - 12:47 #2
Det plejer man da at kunne gøre i SQL på denne måde:

  select navn from foedselsdage order by fdato

(virker, men ikke lige prøvet i MSSQL)
Avatar billede herman01753 Nybegynder
20. marts 2003 - 12:52 #3
jeg er ret ny på området, men bruger query analyser og ikke webdatabase endnu.

Kan det lade sig gøre i query analyzer at gøre det jeg spørger om?
Avatar billede erikjacobsen Ekspert
20. marts 2003 - 13:11 #4
Du må definere nogle views, som disse brugere har adgang til og
nægte dem direkte adgang til tabellerne. Øh - hvis man kan det ...
Avatar billede pierrehusted Nybegynder
20. marts 2003 - 13:11 #5
Ja, du kan f.eks. gøre det ved at lave et view, der indeholder din oprindelige SQL-sætning:

select distinct employees.employeeid, employees.firstname, employees.lastname, employees.city
from employees, orders
where orders.EmployeeID in
(select employees.employeeid from employees, orders
where orders.orderdate <'1996-08-01' and orderdate >'1996-06-30' ) order by employees.firstname


Og så kun hente de felter du vil have fra viewet


select firstname, lastname, city
from viewnavn


Men det vil være langt smartere at du bare undlader at vise ID feltet der hvor brugerne skal se dine data.
Avatar billede herman01753 Nybegynder
22. marts 2003 - 03:26 #6
pierrehusted: jeg er ikke helt med påhvad du siger... hvad er det med "viewnavn"? og hvad mener du med at hente de felter fra viewet, jeg behøver? hvis vi tar udgangspunkt i den SQL sætning, der er kreeret, er der en løsning ud fra det? og hvis ikke, er der andre løsninger som ligger umiddelbart for?
MVH. Herman
Avatar billede pierrehusted Nybegynder
22. marts 2003 - 09:02 #7
OK, så prøver jeg helt ned i detaljerne.

Første laver du et view. Det view har jeg valgt at kalde ANSATTE.


CREATE VIEW dbo.ANSATTE
AS
select distinct employees.employeeid, employees.firstname, employees.lastname, employees.city
from employees, orders
where orders.EmployeeID in
(select employees.employeeid from employees, orders
where orders.orderdate <'1996-08-01' and orderdate >'1996-06-30' ) order by employees.firstname


Når så du skal bruge dataene henter du dem fra viewet :


select firstname, lastname, city
from ANSATTE
Avatar billede herman01753 Nybegynder
22. marts 2003 - 16:03 #8
tak for svaret. og for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester