Avatar billede dkkarpen Nybegynder
10. oktober 2000 - 15:42 Der er 23 kommentarer og
2 løsninger

Jeg skal bruge et view

der opretter en kolonne med fortløbende numre + en række kolonner fra en tabel. Hvordan?
Avatar billede tigerdyr Nybegynder
11. oktober 2000 - 11:44 #1
Der opretter en kolonne ??
Så er det helt sikkert IKKE et view, du skal have fat i...

Hvad med
CREATE TABLE Tabel(
  ID         Int        IDENTITY,
  AndenVærdi    Int
)
Avatar billede tigerdyr Nybegynder
11. oktober 2000 - 11:45 #2
Jeg er dog ikke helt sikker på hvad du præcist mener...
Ellers skal det laves med en Stored Procedure.
Avatar billede dkkarpen Nybegynder
11. oktober 2000 - 11:47 #3
Man kan jo godt oprette en kolonne i et view med en sql sætning.
Avatar billede dkkarpen Nybegynder
11. oktober 2000 - 11:48 #4
Jeg har et række kolonner i en tabel. Der er informaton om et møde i hver record. Idéen med mit view var at generere et mødenummer som første kolonne.
Avatar billede tigerdyr Nybegynder
11. oktober 2000 - 12:48 #5
Dvs. du har en tabel med nogle møder og du vil så have et view hvor hvert møde har fået et møde nr ??
ala:
MødeNr (findes kun i view) - lokale (tabel) - Tid (tabel) - Dato (tabel)
Er vi der henne af ??
Avatar billede dkkarpen Nybegynder
11. oktober 2000 - 14:47 #6
Ja
Avatar billede olberd Nybegynder
11. oktober 2000 - 15:13 #7
For at kunne hjælpe dig, ville det være lidt nemmere hvis du kunne give en mere præcis beskrivelse af de tabeller du vil have med i dit view.
Hvis det er som tugerdyr beskrev så skal du lave en ny tabel som ser ca. sådan ud:
create table tabel(
mødenr int identity,
lokalenr int,
tidnr int,
datonr int)
Du udfylder så tabellen med lokalenr osv., og laver derefter referencer (joins) til lokale tabellen.
Avatar billede tigerdyr Nybegynder
11. oktober 2000 - 15:58 #8
Nemlig olberd...
Problemet er at hvis MødeNr kun skal findes i viewet opstår der et problem, for hvor skal denne værdi så komme fra ?
Hvis du laver det i sammenhæng med ASP, kan du jo så blot lave en løkke der tæller en op for hvert gennemløb og udskriver værdien foran.
Avatar billede dkkarpen Nybegynder
11. oktober 2000 - 18:21 #9
Jeg kan godt lave den med en løkke i ASP. Men det er ikke det jeg er ude efter. Jeg giver en komplet beskrivelse i morgen.
Avatar billede tigerdyr Nybegynder
11. oktober 2000 - 21:18 #10
Det kan også laves med to entiteter, en stored procedure (der indsætter værdier i begge) og et view der henter de data der skal bruges...
Avatar billede olberd Nybegynder
12. oktober 2000 - 08:48 #11
Ups, undskyld tigerdyr. Jeg skrev vist dit alias forkert :-)
Jeg burde måske lige skrive at jeg intet kender til MS SQL, men at jeg bare skriver ud fra det generelle SQL sprog!

Bemærk forresten at jeg IKKE har lavet et view, da et view kun er gengivelse af der står i andre tabeller.
Det jeg viste var at du skulle lave en ny tabel, og at du i denne skulle lave referencer. Referencerne så laves ved hver query (hvis det er til ASP i hvert fald) sådan:
\"SELECT tabel.mødenr,lokale.beskrivelse FROM tabel INNER JOIN lokale.id ON tabel.lokalenr\"
Eller sådan noget lignende, jeg har ikke lige afprøvet queryen endnu, men det er noget lignende.
Avatar billede tigerdyr Nybegynder
12. oktober 2000 - 09:47 #12
>> olberd, du har ganske ret i alle udsagn, et view er blot et statisk join fra flere entiteter.
Men det kan laves rimeligt simpelt med et view, en stored procedure og x antal entiteter, hvis alt (næten) skal ske automatisk
Avatar billede dkkarpen Nybegynder
12. oktober 2000 - 12:33 #13
Tabellen med møder ser således ud:

moedeplanid, dato, uge, moedesal, ankechef, konsulent, speciale, b1_nr, b1, b2_nr, b2, enhed

Jeg ønsker et et sted hvor alle værdier fra tabellen medtages ( i dato rækkefølge) + en kolonne med et stigende nummer startende fra 1. Der skal være konstant opdatering.

Avatar billede tigerdyr Nybegynder
12. oktober 2000 - 16:45 #14
Jamen det kan jo klares med en entitet:

CREATE TABLE Moeder(
  ID    Int  IDENTITY,
  moedeplanid int,
  dato SmallDateTime,
  uge TinyInt,
  moedesal Int,
  ankechef varchar(50),
  konsulent varchar(50),
  speciale Int,
  b1_nr Int,
  b1 Varchar(50),
  b2_nr Int,
  b2 Varchar(50),
  enhed Varchar(20)
)

Uden dog at være sikker på hvilke datatyper du vil have de forskellige felter som...
Avatar billede dkkarpen Nybegynder
12. oktober 2000 - 16:47 #15
Hvad sker der når der sættes et nyt møde ind? Tilpasses nummerrækkefølgen da på ny?
Avatar billede dkkarpen Nybegynder
12. oktober 2000 - 17:00 #16
Med en dato der f.eks. er placeret midt i perioden.
Avatar billede tigerdyr Nybegynder
13. oktober 2000 - 10:21 #17
Nej det gør den ikke... IDENTITY kolonner, er i bund og grund blot en normal autonummering.
Avatar billede tigerdyr Nybegynder
13. oktober 2000 - 10:22 #18
Hvis møderne skal være nummeret i korrekt rækkefølge efter dato & tid, bliver det straks mere krævende, så snakker vi vist en seriøs gang Stored Procedure programmering...Men det kan lade sig gøre!
Avatar billede dkkarpen Nybegynder
13. oktober 2000 - 11:37 #19
Det var jo det jeg mente. Hvordan?
Avatar billede tigerdyr Nybegynder
13. oktober 2000 - 11:54 #20
Den er halvsvær at løse, fordi du skal bruge en Stored Procedure, der FOR HVER insert og update sætning, skal tjekke alle poster igennem, hvis dato/tid er mindre end den største der allerede står i tabellen, skal den nye indsættes og alle poster derefter rettes til... dvs. det også voldsomt maskinkrævende...

Som sagt, det kan lade sig gøre... desværre har jeg ikke tid til det lige her og nu (arbejder med at gøre min hovedopgave færdig), hvis der ikke kommer et brugbart svar i løbet af den næste uge eller to, skal jeg nok prøve at finde en time til at baske en sammen der virker efter hensigten :o)
Avatar billede dkkarpen Nybegynder
13. oktober 2000 - 13:04 #21
Ok tak
Avatar billede olberd Nybegynder
13. oktober 2000 - 13:57 #22
hvad skal du bruge det til ??
et program, en hjemmeside,....??
Avatar billede dkkarpen Nybegynder
23. oktober 2000 - 09:20 #23
En hjemmeside
Avatar billede olberd Nybegynder
30. oktober 2000 - 00:46 #24
Hvorfor henter du ikke bare med en alm query:
\"select * from ..... where .... ORDER BY dato\"

hvis det så skal bruges i fx ASP:
i=1
Do Until RS.EOF
bla bla.....
i = i + 1
RS.movenext
Loop
Avatar billede c47 Nybegynder
09. februar 2001 - 15:21 #25
Dette skulle kunne klare det.
Jeg har en tabel med oplysninger on nogle banner. navn, størrelse, filnavn, link osv.
Jeg ønsker at lave et view med et fortløbende nummer samt navn og ImageURL på banneret.
dette gøres således:

CREATE  VIEW dbo.VIEW1
AS
SELECT  COUNT(B1.Name) AS ID, B.Name, B.ImageURL
FROM    dbo.Banners B
JOIN    dbo.Banners B1 ON B.Name > B1.Name
GROUP BY B.Name, B.ImageURL
ORDER BY B.Name
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