Avatar billede morten_s Nybegynder
12. september 2002 - 15:50 Der er 8 kommentarer og
1 løsning

Hjælp til Querry

Jeg har en tabel der ser ud som følger:

NodeNo    CntDate    CntTime    Cnt1    Cnt2
1    2002-09-12  00:00    2    3
1    2002-09-12  00:15    4    5
1     2002-09-12  00:16    6    7
2    2002-09-12  00:00    8    9
2    2002-09-12  00:15    10    11
2     2002-09-12  00:16    12    13

.


Når jeg udfører nedenstående Querry får jeg:
SELECT cnt1 AS D1, cnt2 AS D2, cnt1+cnt2 AS Total FROM CntLog WHERE NodeNo = '1'

Dato    Tid    D1    D2    Total
2002-09-12    00:00    2    3    5
2002-09-12    00:00    4    5    9
2002-09-12    00:00    6    7    13

Det som jeg ønsker er et Querry som f.eks tager Cnt1 og Cnt2 fra dem med NodeNo= 1 og ligger sammen med Cnt2 AS D3 fra dem som har NodeNo 2

Resultatet skal se ud som følger:

Dato    Tid    D1    D2    D3    Total
2002-09-12    00:00    2    3    9    14
2002-09-12    00:00    4    5    11    20
2002-09-12    00:00    6    7    13    26

Håber nogen kan klare den
/Morten
Avatar billede morten_s Nybegynder
12. september 2002 - 15:50 #1
Det skal bemærkes at Dato og tid er af typen varChar
Avatar billede morten_s Nybegynder
12. september 2002 - 15:52 #2
og tiden i begge tabelle er selvfølgelig ikke 00:00 i alle felter men

00:00
00:15
00:30 osv
Avatar billede lasse_buck Nybegynder
12. september 2002 - 16:24 #3
SELECT a.CntDate, a.cnt1 AS D1, a.cnt2 AS D2, b.cnt2 AS D3, a.cnt1 + a.cnt2 + b.cnt2 AS Total FROM CntLog a, CntLog b
  WHERE a.NodeNo = '1' AND b.NodeNo = '2' AND a.CntDate = b.CntDate;

Denne syntax virker i Oracle og burde være ok.
Avatar billede morten_s Nybegynder
12. september 2002 - 16:30 #4
Det er tæt på at være rigtigt, der mangler bare CntTime og at
CntDate bliver vist som Dato og at CntTime bliver vist som Tid
Avatar billede morten_s Nybegynder
12. september 2002 - 16:32 #5
Sådan her kører det, mange tak for hjælpen

SELECT a.CntDate as Dato, a.CntTime as Tid, a.cnt1 AS D1, a.cnt2 AS D2, b.cnt2 AS D3, a.cnt1 + a.cnt2 + b.cnt2 AS Total FROM CntLog a, CntLog b
  WHERE a.NodeNo = '1' AND b.NodeNo = '2' AND a.CntDate = b.CntDate AND a.CntTime = b.CntTime;
Avatar billede lasse_buck Nybegynder
12. september 2002 - 16:37 #6
hehe ja :o)  I min egen testtabel havde jeg bare CntDate som et nummer og CntTid var ikke med.
CntTid skal selvfølgelig også med:
SELECT a.CntDate, a.CntDate, a.cnt1 AS D1, a.cnt2 AS D2, b.cnt2 AS D3, a.cnt1 + a.cnt2 + b.cnt2 AS Total FROM CntLog a, CntLog b
  WHERE a.NodeNo = '1' AND b.NodeNo = '2' AND a.CntDate = b.CntDate AND a.CntTid = b.CntTid;

Felterne må du formattere som du har lyst til. Jeg kender ikke formatteringsfunktionerne i MySQL, men dem ved du sikkert alt om.
Avatar billede lasse_buck Nybegynder
12. september 2002 - 16:38 #7
Velbekomme!
Avatar billede morten_s Nybegynder
12. september 2002 - 16:41 #8
De er tilsyneladende identiske med Oracle, men er der ikke også noget med en SQL konvention SQL 72 eller noget i den stil ?
Avatar billede lasse_buck Nybegynder
12. september 2002 - 23:15 #9
Der er helt sikkert en SQL standard. Jeg ved dog ikke, hvor meget den indeholder. Jeg har set, at flere systemer har deres egne tilføjelser.
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