Permalänk
Medlem

SQL fråga

Jag har en fråga angående SQL. Jag har som uppgift att göra en query på en viss tabell men man ska manipulera vad utmatningen blir, det här är ett exempel:

4 böcker har inköpts, med utgivningsår 1992

att räkna hur många böcker som finns per år är inte svårt, men hur ändrar man resultatet så att man får en sträng på det här viset? Är det någon som vet om någon funktion som man kan använda för det?

Visa signatur

Pentium 4 2.4 Ghz, Abit IS7-E, 500gb hd, Gainward Geforce FX5900 128 mb, 1024 mb ddr 400 mhz

Permalänk
Medlem

Vilket programmeringsspråk? Textsträngen får du antagligen(?) skriva ut korrekt med ditt programmeringsspråk. Använd SQL för att hämta värdena. Eller har jag fel?

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Medlem

Programmeringsspråket är SQL, det ska gå att göra i SQL, det är uppgiften jag har fått, jag får inte använda något annat programmeringsspråk. Det ska finnas någon funktion i SQL för att göra det.

Visa signatur

Pentium 4 2.4 Ghz, Abit IS7-E, 500gb hd, Gainward Geforce FX5900 128 mb, 1024 mb ddr 400 mhz

Permalänk
Medlem

De flesta databasprodukter har strängfunktioner som du kan använda. + eller & bör du kunna använda för att bygga den mening du vill ha.

Exempel:

SELECT count(*) & ' böcker har inköpts, med utgivningsår ' & år AS Resulat FROM inköp WHERE år = '1992' GROUP BY år;

Givetvis får SQL-koden byggas upp efter vilka tabeller du har i din databas.

Permalänk
Medlem

SELECT CONCAT(qty, ' böcker har inköpts under ', year) AS `skoluppgift` FROM `inkop_bocker`

Visa signatur

Brass knuckles and a 2x4

Permalänk
Medlem

Då har jag lärt mig något nytt idag också

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Rimion
De flesta databasprodukter har strängfunktioner som du kan använda. + eller & bör du kunna använda för att bygga den mening du vill ha.

Exempel:

SELECT count(*) & ' böcker har inköpts, med utgivningsår ' & år AS Resulat FROM inköp WHERE år = '1992' GROUP BY år;

Givetvis får SQL-koden byggas upp efter vilka tabeller du har i din databas.

Det var bra hjälp jag fick, men det funkar inte riktigt, det ser dock ut att vara på väg, så här gjorde jag om koden för att det skulle passa in:

SELECT (CAST(COUNT(UTGAR) AS VARCHAR(30))&' böcker har inköpts, med utgivningsår ') AS Resultat
FROM BOG.BOK
WHERE UTGAR = '1992'
GROUP BY UTGAR;

Jag la in en CAST eftersom UTGAR är en integer och tänkte att det funkar väl bättre om den blir en char istället. Men jag får upp felet nu att 'operands not comparable'. Men jag förstår inte vad som är fel..

Visa signatur

Pentium 4 2.4 Ghz, Abit IS7-E, 500gb hd, Gainward Geforce FX5900 128 mb, 1024 mb ddr 400 mhz

Permalänk
Medlem

Det kan vara så att en INTEGER inte kan konverteras om till en VARCHAR. Prova CHAR istället. Dock tycker jag att du inte ska behöva använda en CAST utan att det ska ske automatiskt. Vilken databasprodukt använder du?

Permalänk
Medlem

Jag använder WSQL. Det är själva programmet, via Mimer.

EDIT:

Jag har lyckats lösa det nu:

SELECT CAST(COUNT(UTGAR)AS CHAR) &' böcker har inköpts, med utgivningsår 1992' AS resultat
FROM BOG.BOK
WHERE UTGAR = 1992
GROUP BY UTGAR;

Tack så hemskt mycket för hjälpen!!

Visa signatur

Pentium 4 2.4 Ghz, Abit IS7-E, 500gb hd, Gainward Geforce FX5900 128 mb, 1024 mb ddr 400 mhz