|
| stored procedure Fra : MKC | Vist : 741 gange 100 point Dato : 18-02-03 13:56 |
|
Hej
Jeg har problemer med en stored procedure der ser således ud:
-----
CREATE PROCEDURE GetCprTotalPrice
AS
SELECT Cprnr ,sum(totalpris)
FROM Kunder, ordrer
where cprnr = kundeid
group by cprnr
GO
-----
Problemet er at jeg skal have listet alle Cprnr fra tabellen kunder samtidigt med at jeg skal have deres totalpris fra tabellen ordrer, men det virker ikke
Håber der er nogle der kan hjælpe
//Mikkel
| |
| Kommentar Fra : pmbruun |
Dato : 18-02-03 14:10 |
|
Du skriver ikke lige hvilket SQL produkt du bruger, men det ligner MS SQL Server eller Sybase. Det kunne måske også hjælpe, hvis du skrev lidt om, hvordan det ikke virker - kommer der en fejlmeddelelse, hvad siger den, o.s.v.
I øvrigt ser det ud som om du med fordel kunne bruge et view i stedet for en stored procedure.
Peter
P.S. Du skriver heller ikke, hvad du skal bruge databasen til, men det er ikke lovligt at bede om eller gemme kunders CPRNR, med mindre du har en særlig indberetningspligt til myndighederne (bank, forsikring, o.s.v.).
| |
| Kommentar Fra : MKC |
Dato : 18-02-03 14:26 |
|
Det er MS sql, der kommer ingen fejlmeddelse, med det blever kun retuneret de værdier der har en totalpris alså fra ordretabelln og ikke alle cprnr fra kundetabellen.
Det behøver ikke være cprnr det er bare en unik nøgle.
tak
| |
| Accepteret svar Fra : pmbruun | Modtaget 110 point Dato : 18-02-03 14:51 |
|
Aha. Problemet har ikke noget med stored procedures at gøre, vel? Hvis du skriver:
SELECT Cprnr ,sum(totalpris)
FROM Kunder, ordrer
where cprnr = kundeid
group by cprnr
GO
får du samme svar, ikke også?
Løsningen hedder "outer join". Se: http://www.pbdr.com/vbtips/db/sql1.htm
Med venlig hilsen
Peter M. Bruun
| |
| Godkendelse af svar Fra : MKC |
Dato : 18-02-03 15:29 |
|
Tak for hjælpen, en outer join var svaret
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|