aspMedlem sedan aug. 2002733 inlägg Hej..
Vill klämma in en kod så inte "Till" upprepas någon gång.
SELECT * FROM Bud
SELECT DISTINCT Till FROM Bud
Men när jag kör nedersta raden så kan jag ej använda mig av andra fält som summa och datum. Då får jag felmeddelandet:
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/transfer/bids.asp, line 15
Rad 15 innehåller.... makeSumma(rs("Summa"))
TroxyMedlem sedan mars 20041 505 inlägg Du borde läsa på hur SQL egentligen fungerar.
Om du bara skriver "SELECT DISTINCT Till" så hämtar den bara kolumnen "Till", och då kan du inte skriva ut några andra fält.
Vad är det för fler fält du vill hämta?
Vad innehåller summa?
Vad gör funktionen makeSumma()?
aspMedlem sedan aug. 2002733 inlägg Tycker det står ganska klart att jag vill också hämta fälten summa och datum. Summa innehåller ett tal och makeSumma gör talet till rätt valuta. Men det spelar ingen roll.
TroxyMedlem sedan mars 20041 505 inlägg SELECT DISTINCT Till, Summa, Datum FROM Bud
aspMedlem sedan aug. 2002733 inlägg Redan testat det, kommer fortfarande flera poster där "Till" har samma värde... nu läste jag visserligen problemet med en IF-sats istället, men hade ändå varit bra om man kunde få reda på hur SQL-satsen sett ut... :)
LarsGMedlem sedan dec. 200012 464 inlägg Om det för ett värde på TILL finns flera olika värden av SUMMA och DATUM, vilken post av dessa vill du då hämta? Ange exempel på datainnehåll och förväntat resultat.
Du skall inte behöva använda någon if-sats i ASP för att få fram resultatet.
aspMedlem sedan aug. 2002733 inlägg Jag vill hämta poster där TILL ej upprepas. Om det finns poster med samma värde i TILL så skall den ta värdet där SUMMA är högst.
LarsGMedlem sedan dec. 200012 464 inlägg select till,datum,summa
from bud as b
where summa
in (select max(summa)
from bud
where bud.till = b.till)
aspMedlem sedan aug. 2002733 inlägg Tack, koden fungerar. Kan någon förklara HUR koden fungerar.
CompusaMedlem sedan jan. 20023 327 inlägg aspMedlem sedan aug. 2002733 inlägg Okej, tack har läst men har svårt att förstå exakt vad som händer.
Kanske kan förstå bättre om jag får ett svar på denna fråga...
Har en tabell med fält:
Av (Budarens ID)
Till (Spelarens ID)
Summa (Summa i SEK)
För att räkna ut hur mycket en budare har lagt totalt summerar jag Summa. Men nu vill helst att den inte skall summera två poster där Till är av samma värde, utan ta den som är högst.
SELECT TOP 10 Av, Sum(Summa) AS antal FROM Bud GROUP BY Av ORDER BY 2 DESC, Av ASC
emissionMedlem sedan dec. 19996 721 inlägg SELECT Av,SUM(DISTINCT(Summa)) FROM Bud b
WHERE summa
in (select max(summa)
from bud
where bud.till = b.till and bud.av=b.av)
GROUP BY Av
eller
SELECT Av,SUM(MaxSumma) FROM
(
SELECT Av,Till,MAX(Summa) as MaxSumma FROM Bud GROUP BY Av,Till
) m
GROUP BY Av
ORDER BY SUM(MaxSumma) DESC,Av