Avatar billede frugaard Nybegynder
21. august 2001 - 14:17 Der er 17 kommentarer og
1 løsning

Kan man programmere i SQL???

Hej Alle,

er der nogen som kan lave noget kode på MS SQL, som kan ændre nogle værdier i en tabel?

Det drejer som at jeg har 2 tabeller. Den ene har indeholder et ID felt + 10 felter som hedder var1, var2, var3 osv.

Den anden tabel indeholder tekstnavnene på de forskellige variabler.

TABEL1
[ID] [VAR1] [VAR2] [VAR3] osv.
2    100    200    100
4    100    100    200
osv.

TABEL2
[100]  [200]
Dreng    Pige
osv.

Jeg vil gerne have lavet en update, som bytter tallet på variablen ud med det tilhørene navn.

Resultat
[ID] [VAR1] [VAR2] [VAR3]
2  Dreng  Pige  Dreng
3  Dreng  Dreng  Pige
osv.

Jeg kender ikke overdrevet meget til SQL, så jeg har brug for en der kan vise mig det fra bunden.

Avatar billede limemedia Nybegynder
21. august 2001 - 14:21 #1
Det du skal anvende er en stored procedure i MSSQL... Jeg har ikke leget med det siden januar iår, så du må hellere finde lidt dok eller vente til en med viden kommer herind *s*
Avatar billede runesoft Nybegynder
21. august 2001 - 14:25 #2
er id\'et navnet på feltet i den anden tabel?
Avatar billede frugaard Nybegynder
21. august 2001 - 14:35 #3
Id\' er kundens nummer.

Der er nemlig også nogle andre tabeller som giver oplysninger om adresse, tlf. osv. Så ID bruges som relation mellem de forskellige tabeller.

Er det nok information ?!? :o)
Avatar billede frugaard Nybegynder
21. august 2001 - 14:37 #4
Ljweb>> Stored procedure.... Ved du hvilket sprog man bruger til disse?  Jeg kan VB, og Delphi... tror du det ligner?
Avatar billede runesoft Nybegynder
21. august 2001 - 14:45 #5
hvorfor vil du have dataene skrevet over på den måde. Er det ikke federe at have dataene liggende i 2 tabeller?
Avatar billede frugaard Nybegynder
21. august 2001 - 14:57 #6
Jo, og det er også fint i hoveddatabasen.

Men jeg har lavet et datawarehouse, som viser hele databasen grafisk. Jeg har derfor brug for at få dataerne ind med navne og ikke variabler.
Avatar billede runesoft Nybegynder
21. august 2001 - 15:23 #7
Det synes jeg ikke er nogen undskyldning for at gøre det i selve udtrækket.

select t1.ID, v1.sex,v2.sex,v3.sex,v4.sex,v5.sex,v6.sex,v7.sex,v8.sex from tabel1 t1, tabel2 v1,tabel2 v2,tabel2 v3,tabel2 v4,tabel2 v5,tabel2 v6,tabel2 v7,tabel2 v8 where var1=v1.id and var2=v2.id and var3=v3.id and var4=v4.id and var5=v5.id and var6=v6.id and var7=v7.id and var8=v8.id
Avatar billede runesoft Nybegynder
21. august 2001 - 15:27 #8
for ikke at gøre det i udtrækket selvfølgelig :-)
Avatar billede frugaard Nybegynder
21. august 2001 - 15:47 #9
runesoft, jeg ved ikke om dit forslag virker, da jeg ikke har prøvet den endnu.

Kan du fortælle mig hvordan jeg kan ligge det ind i min database på SQL serveren? Skal jeg bruge en stored procedure eller hva\'?

Ang. datawarehouse.

Jeg har lavet en fejl i fremvisning af hvordan mine data ligger gemt. Jeg ved ikke om det måske ville være fornuftigt at sende dig den query jeg bruger for at få mit resultat frem. Det er den query jeg gerne vil have ind i en automatisk process.

Hvad siger du til det?  Jeg vil oven i købet gerne smide nogle flere point på.
Avatar billede runesoft Nybegynder
21. august 2001 - 15:48 #10
kom bare med den, så skal jeg se hvad jeg kan gøre.
Avatar billede frugaard Nybegynder
21. august 2001 - 16:09 #11
SELECT    CRM5.contact.contact_id, CRM5.contact.name, CRM5.contact.userdef_id, CRM5.udcontactsmall.udcontactSmall_id, CRM5.udcontactsmall.long06,
                      CRM5.udlist.UDList_id, CRM5.udlist.name
FROM        CRM5.udcontactsmall INNER JOIN
                      CRM5.contact ON CRM5.udcontactsmall.udcontactSmall_id = CRM5.contact.userdef_id INNER JOIN
                      CRM5.udlist ON CRM5.udcontactsmall.long06 = CRM5.udlist.UDList_id

Hver kunde (CRM5.contact) har et felt (CRM5.contact.userdef_id) der knytter kunden til en tabel med ca. 100 variabler.  Tabellen med de 100 variabler har også et ID felt (CRM5.udcontactsmall.udcontactsmall_id). I tabellen ligger der så en masse felter (CRM5.udcontactsmall.long01, .long02, .long03 osv.) Der er så en 3. tabel som indeholder navnet til disse variabler (CRM5.udlist) Jeg joiner den variabel som jeg ønsker navnet på(CRM5.udcontactsmall.long6) til (CRM5.udlist.udlist_id) og jeg kan hermed se navnet på variablen i (CRM5.udlist.name)

Problemet er, at jeg for at få de andre navne frem, skal joine f.eks. (.long7) med (.udlist_id)

Prøv at se om det giver mening :o)
Avatar billede frugaard Nybegynder
21. august 2001 - 16:15 #12
Hvis man kunne programmere som jeg kender det, så ville jeg skrive et program noget aller det her.

FOR X := 1 to 100 Begin
  SELECT    CRM5.contact.name,        CRM5.udcontactsmall.udcontactSmall_id, CRM5.udlist.name
FROM        CRM5.udcontactsmall INNER JOIN
                      CRM5.contact ON CRM5.udcontactsmall.udcontactSmall_id = CRM5.contact.userdef_id INNER JOIN
                      CRM5.udlist ON CRM5.udcontactsmall.longX = CRM5.udlist.UDList_id

End;
Avatar billede runesoft Nybegynder
22. august 2001 - 11:12 #13
Prøv at forklar det igen:-)
Avatar billede frugaard Nybegynder
22. august 2001 - 12:15 #14
Haha... Jeg ved godt det er lidt kryptisk.

Hvordan kan jeg gøre det nemmere for dig?!? Kan jeg evt. sende dig den grafiske query, som jeg har lavet på SQL serveren?
Avatar billede runesoft Nybegynder
22. august 2001 - 13:09 #15
kan du ikke lægge den et tilgængeligt sted og så paste et link til den?
Avatar billede frugaard Nybegynder
22. august 2001 - 13:31 #16
Jeg kan desværre ikke ligge noget ud til dig, da jeg ikke har adgang til særlig meget bag denne firewall... Men jeg kan maile det til dig
Avatar billede runesoft Nybegynder
22. august 2001 - 13:35 #17
runesoft@ofir.dk
Avatar billede frugaard Nybegynder
21. september 2001 - 00:10 #18
jeg lukker !!!
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