Avatar billede skindbeni Nybegynder
03. januar 2010 - 13:57 Der er 5 kommentarer og
1 løsning

SELECT sætning med "gange"

Hej.

Jeg er ved at lave en SELECT sætning, hvor jeg trækker tal ud fra to tabeller i min database.

Jeg har sammensat den del af SQL'en korrekt. Det er testet.

Så forsøger jeg at indsætte endnu et felt i min SQL og der gårt det galt.

Jeg har brug for at hente en beregnet værdi fra den ene tabel ganget med en værdi fra den anden tabel.

JEg har forsøgt med nedenstående, som er et udpluk af min SQL SELECTsætning, hvor det går galt.

SELECT... ...p.dk * m.sats as kr...

Jeg har googlet og har intet fundet omkring gange i SQL, kun sum, avg, min osv. Er SQL ikke beregnet til dette eller bør jeg eventuelt holde mig fra ovenstående og i stedet klare det med kode i min applikation i stedet for på databaseniveau? (Eller forvirrer jeg mig selv nu. Når jeg i min applikation laver en SQL SELECT sætning, er det overhovedet databasenieau eller applikationsniveau) :o)
Avatar billede Slettet bruger
03. januar 2010 - 14:07 #1
Det skulle være muligt med *...
Hvordan ser det ud, når du laver
SELECT... ... p.dk, m.sats ...
03. januar 2010 - 14:45 #2
Der skulle ikke vaere nogen problemer med * i mysql.  For test lavede jeg nedenstaaende tabeller med data og koerte saa denne query: 

SELECT s1.item, number, pris, number*pris AS kr
FROM skindbeni1 s1
JOIN skindbeni2 s2 ON s1.item=s2.item;

som gav dette resultat:

item  number  pris  kr 
item2 8 21 168
item4 10 22 220
item6 12 23 276

hvilket var forventet.

Her er tabellerne:

CREATE TABLE skindbeni1(item VARCHAR(5), number INTEGER);
CREATE TABLE skindbeni2(item VARCHAR(5), pris INTEGER);

INSERT INTO skindbeni1 VALUES('item1', 7);
INSERT INTO skindbeni1 VALUES('item2', 8);
INSERT INTO skindbeni1 VALUES('item3', 9);
INSERT INTO skindbeni1 VALUES('item4', 10);
INSERT INTO skindbeni1 VALUES('item5', 11);
INSERT INTO skindbeni1 VALUES('item6', 12);
INSERT INTO skindbeni1 VALUES('item7', 13);

INSERT INTO skindbeni2 VALUES('item2', 21);
INSERT INTO skindbeni2 VALUES('item4', 22);
INSERT INTO skindbeni2 VALUES('item6', 23);
INSERT INTO skindbeni2 VALUES('item8', 24);
Avatar billede arne_v Ekspert
03. januar 2010 - 14:47 #3
Gange bør virke fint.

Men medmindre det skal bruges til noget et andet sted i din SQL sætning, så kan du ligeså godt lave det i applikationen.
Avatar billede skindbeni Nybegynder
03. januar 2010 - 15:31 #4
@Christian.

Jeg har accepteret dit svar, da det gav mig "svar" på 2 steder i min SQL, hvor jeg havde lavet midnre fejl.

Utroligt at man kan lave så meget ged i den på så lille et område :o)
03. januar 2010 - 16:16 #5
Det er blevet beregnet at jordens befolkning stadig kan staa paa Bornholm.  I middelalderen blev det meget diskuteret hvor mange engle der kan staa paa en knappenaals-spids.  Ogsaa jeg har erfaring med at der kan ligge mange bugs i en lille stump kode.
Avatar billede arne_v Ekspert
03. januar 2010 - 17:01 #6
De skal sgu stå lidt tæt. Der er ca. 30 x 30 cm per hoved. Altså jordens befolkning på Bornholm.
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