JAg har följande sql Kan det vara så att du saknar en ORDER BY sats? För att få en rad per orderID behöver du något mer från orderPic tabellen att "joina" med.För många rader
<code>
ALTER PROCEDURE carOrderGetAllOrders
AS
SELECT TOP 1 co.carOrderID, co.manifacture, co.model, co.[year], co.customer, co.city, co.cellPhone,
co.mail, co.isApproved, co.approveDate, op.picName
FROM carOrder co
LEFT JOIN orderPic op
ON co.carORderID = op.orderID
</code>
I carOrder finns det bara en rad, i orderPic kan det finnas fler eller ingen. Hur skriver jag för att bara få ut en rad? Nu får jag ju ut en rad för varje bild.Sv: För många rader
Testa att sortera på din nyckel.Sv: För många rader
Något som kan skilja ut en rad i orderPic.
T.ex en kolumn/fält med picturenumber, en siffra som anger i vilken ordning de sparats.
DÅ skulle din fråga bli så här:
<code>
SELECT
co.carOrderID,
co.manifacture,
co.model,
co.[year],
co.customer,
co.city,
co.cellPhone,
co.mail,
co.isApproved,
co.approveDate,
op.picName
FROM carOrder co
LEFT JOIN orderPic op ON (co.carORderID = op.orderID) AND (op.picturenumber = 1);
</code>
OBS! ovan var bara ett exempel.
Har du ingen bra sådan kolumn, kan du göra det själv i frågan.
Så här:
OBS! Gäller SQL Server 2005/2008.
<code>
;WITH getPicOrderID AS
(
SELECT
orderID,
picName,
ROW_NUMBER() OVER(PARTITION BY orderID ORDER BY picName) AS rn
FROM orderPic
)
SELECT
co.carOrderID,
co.manifacture,
co.model,
co.[year],
co.customer,
co.city,
co.cellPhone,
co.mail,
co.isApproved,
co.approveDate,
op.picName
FROM carOrder co
LEFT JOIN getPicOrderID op ON (co.carORderID = op.orderID) AND (op.rn = 1);
</code>