|
| Problemer med SQL statement Fra : M@ds |
Dato : 16-08-01 19:42 |
|
Hej
Jeg bruger MS SQL server. Jeg har et problem med følgende SQL statement:
SELECT Prices.CodeNo, Prices.Price, (SELECT Description FROM Descriptions
WHERE Descriptions.CodeNo=Prices.CodeNo) AS Description, (SELECT SysName
FROM SysNo WHERE SysNo.SysNo=Prices.SysNo) AS SysName FROM Prices
Den skal hente priser ud fra tabellen Prices.
Til visse kodenumre findes en beskrivelse i en seperat tabel. Og visse
kodenumre er del af et system som har et systemnavn i en seperat tabel.
Jeg har prøvet SQL statementen i MS SQL Enterprise Manager. Hvor den virker
fint.
Men hvis jeg bruger den i mit ASP script eller i MS Query kommer felterne
som jeg giver aliaserne Description og SysName ikke med.
Hvordan får jeg det til at virke?
Hilsen
Mads
| |
Lars Petersen (16-08-2001)
| Kommentar Fra : Lars Petersen |
Dato : 16-08-01 23:40 |
|
> Jeg bruger MS SQL server. Jeg har et problem med følgende SQL statement:
> SELECT Prices.CodeNo, Prices.Price, (SELECT Description FROM Descriptions
> WHERE Descriptions.CodeNo=Prices.CodeNo) AS Description, (SELECT SysName
> FROM SysNo WHERE SysNo.SysNo=Prices.SysNo) AS SysName FROM Prices
Vel noget i stil med:
SELECT P.CodeNo, P.Price, D.Description, S.SysName
FROM Prices P, Descriptions D, SysNo S
WHERE P.CodeNo = D.CodeNo
AND P.SysNo = S.SysNo
--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy - A Free Half Life
Manager!
When mailing me, remember there is no truth in my mail!
| |
M@ds (28-08-2001)
| Kommentar Fra : M@ds |
Dato : 28-08-01 19:16 |
|
"Lars Petersen" <lars@truth.ioflux.net> wrote in message
news:4ZXe7.1871$Pl.67335@news010.worldonline.dk...
> > Jeg bruger MS SQL server. Jeg har et problem med følgende SQL statement:
> > SELECT Prices.CodeNo, Prices.Price, (SELECT Description FROM
Descriptions
> > WHERE Descriptions.CodeNo=Prices.CodeNo) AS Description, (SELECT SysName
> > FROM SysNo WHERE SysNo.SysNo=Prices.SysNo) AS SysName FROM Prices
>
> Vel noget i stil med:
>
> SELECT P.CodeNo, P.Price, D.Description, S.SysName
> FROM Prices P, Descriptions D, SysNo S
> WHERE P.CodeNo = D.CodeNo
> AND P.SysNo = S.SysNo
>
Problemet med denne konstruktion er at hvis Descriptions ikke indeholder
nogen beskrivelse til et bestemt CodeNo. Bliver dette CodeNo ikke vist.
Det skal dog vises!
Hilsen
M@ds
mads@iname.com
| |
Peter Lykkegaard (29-08-2001)
| Kommentar Fra : Peter Lykkegaard |
Dato : 29-08-01 12:05 |
|
"M@ds" <mads@iname.com> wrote in message
news:3b8bded6$1$7952$edfadb0f@dspool01.news.tele.dk...
> "Lars Petersen" <lars@truth.ioflux.net> wrote in message
> news:4ZXe7.1871$Pl.67335@news010.worldonline.dk...
> >
> > SELECT P.CodeNo, P.Price, D.Description, S.SysName
> > FROM Prices P, Descriptions D, SysNo S
> > WHERE P.CodeNo = D.CodeNo
> > AND P.SysNo = S.SysNo
> >
> Problemet med denne konstruktion er at hvis Descriptions ikke indeholder
> nogen beskrivelse til et bestemt CodeNo. Bliver dette CodeNo ikke vist.
> Det skal dog vises!
>
LEFT OUTER JOIN er din ven her
SELECT P.CodeNo, P.Price, D.Description, S.SysName
FROM Prices P
INNER JOIN SysNo S ON P.SysNo = S.SysNo
LEFT OUTER JOIN Descriptions D ON P.CodeNo = D.CodeNo
mvh/Peter Lykkegaard
| |
|
|