Avatar billede lanthernen Nybegynder
07. februar 2007 - 13:58 Der er 5 kommentarer og
1 løsning

Hente data fra 2 databaser

Hejsa

Jeg er ved at lave en tæller som viser hvor mange mennesker der er inde i området lige nu og hvor manger der har været derinde totalt Min forespørgfor dagen. sel virker sådan set fint nok, men da data først ryger i en database for derefter at ryge videre til en anden database(sker automatisk hver 15. min og kan ikke ændres), vil jeg gerne kunne trække data fra begge databaser så jeg ikke er op til "15 min efter hele tiden"

Min forespørgsel ser således ud:
Select (Sum(Indgange) - Sum(Udgange)) as GæsterNu, Sum(Indgange) as GæsterIAlt
from Gaester
where [Date] >= cast(floor(cast(getdate() as float)) as datetime)
and Note in(1,2)

Og virker som sagt fint hvis jeg kan stille mig til tåls med 15 min forsinkelse. Databaserne har samme opbygning og kan vel beskrives som at den første database samler ind og udgangsdata op for at sende dem videre hver 15 min til serveren.

Kan jeg trække data og summere på begge databaser og hvordan?
Avatar billede lorentsnv Nybegynder
07. februar 2007 - 20:14 #1
Er begge dine databaser på samme SQL Server?

I så fald, kan du kalde den med databasenavn.skemanan.tabelnavn:

Fra den 'anden' database. bør du kunne kalde ovensåtende SQL med noget lignende:

Select (Sum(Indgange) - Sum(Udgange)) as GæsterNu, Sum(Indgange) as GæsterIAlt
from MinDatabase.dbo.Gaester
where [Date] >= cast(floor(cast(getdate() as float)) as datetime)
and Note in(1,2)

Teksten MinDatabase skal du skifte ud med databasenavnet på den database hvor tabellen Gaester ligger. Som default vil skema/owner være 'dbo', men det kan være et andet navn. Men da du kan køre en SQL mod tabellen Gaester, uden at prefikse denne med skemanavn/owner, går jeg ud fra at detter or 'dbo'.

Kan du give lidt flere oplysninger om den database hvor data opdateres realtime?
Avatar billede lanthernen Nybegynder
07. februar 2007 - 21:13 #2
Hejsa igen :-)

Det kan faktisk være både og. I nogle tilfælde er begge databser på samme server og i andre tilfælde er de placeret på en desktop og en server, altså adskilt.

I dette tilfælde her er de adskilt.
Avatar billede lorentsnv Nybegynder
07. februar 2007 - 21:30 #3
En løsning kunne være at bruge linked server. Dvs. at du definerer den ene server som linked server på den anden, og så kan du lave en forespørgsel mot begge databaser, på samme måde som vist ovenfor.

Linked server kan du bl.a. læse om her:
http://www.databasejournal.com/features/mssql/article.php/3085211

Du kan faktisk bruge linked server på andre kilder end SQL Server. F.eks. vil du kunne lave en linked server til Excel eller Access.
Avatar billede lorentsnv Nybegynder
30. august 2007 - 09:48 #4
Har du løst dit problem?
Måske på tide at lukke spørgsmålet ;-)
Avatar billede lanthernen Nybegynder
30. august 2007 - 22:33 #5
har ikke fået løst prob, men har ikke tid til at kigge på det lige nu. Smid svar og du får point.

Tak for hjælpen
Avatar billede lorentsnv Nybegynder
03. september 2007 - 10:31 #6
ok
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



IT-JOB

ALD Automotive Danmark A/S

Regional IT-administrator

Udviklings- og Forenklingsstyrelsen

Business Analyst med drive og gåpåmod

Københavns Professionshøjskole

Nytænkende og agil IT-projektleder

Udviklings- og Forenklingsstyrelsen

Projektkonsulent til nyopstartet it-projekt