Group by

ASP

10 svar · 223 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Trådstart#1

Hur ska man göra för att kunna sortera efter korg_id så att den senaste produkten som ä inlagd visas högst upp.

om jag lägger till korg_id vid raden Group by så blir det två separata objekt istället för ett som det ska vara.

 
sqlString = "select produkt_namn, produkt_pris, sum(korg_antal) as antal2 " &_
"FROM korg, produkter " &_
"WHERE korg_userID=" & userID & " " &_
"AND korg_produktID= produkt_id " &_
"GROUP by produkt_namn, produkt_pris" & _
"ORDER by korg_id DESC"
SET RS = Con.Execute( sqlString )

Detta felmeddelande får jag

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'by'.
/td/butik/korg2.asp, line 143

Medlem sedan mars 2001309 inlägg
#2

Då måste du ha med korgid i frågan.....

sqlString = "select produkt_namn,korg_id, produkt_pris, sum(korg_antal) as antal2 " &_
"FROM korg, produkter " &_
"WHERE korg_userID=

Fatta du vad jag menar....

Medlem sedan jan. 20013 406 inlägg
#3

Om jag gör på det sätt du beskriver får jag felmeddelandet

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'korg.korg_id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/td/butik/korg2.asp, line 143

Medlem sedan mars 2001309 inlägg
#4

Du måste även ha med korg_id i group by.....

Medlem sedan jan. 20013 406 inlägg
#5

Ja men om jag tar med korg_id i group by så blir det två separata objekt som visas istället för att de läggs ihop till ett.

Medlem sedan mars 2001309 inlägg
#6

Vad då separata objekt.......
Felmeddelandet du får står ju för att antingen måste det stå med i group by eller vara av typen sum,count eller någon sådan aggregat funktion......
Fattar inte riktigt vad som händer.....

Men det är väl jag som är trög....

Medlem sedan jan. 20013 406 inlägg
#7

Det är en butikskorg som ska visa produkter.

Om vi säger att man lägger en pikétröja small och en pikétröja large i korgen. Då hamnar denna beställning på två rader. De har samma korg_userid och samma produkt_id men olika produkt_alternativ.

Korgen som visas ligger i en frame så den ska inte vara så detaljerad. Därför ska den inte visa två tröjorna som två objekt.

Det ska stå så här ungefär
2 st piké tröja á 399 kr

Detta fungerar men jag vill också få den att visa det objektet man lade till senast ska visas högst upp. Anledningen till det är att det är en rullningsbarmeny som är korgen

Medlem sedan mars 2001309 inlägg
#8

Läggs det man väljer i en separat tabell i databasen ? För då skulle du ju kunna lägga till en kolumn med datum och tid (även sekunder).....
Hur löste du det andra problemet(nyfiken).....

Medlem sedan jan. 20013 406 inlägg
#9

Nej den läggs inte i en separat tabell

den här koden fungerar men när jag byter ut ORDER by produkt_namn till korg_id så fungerar det inte

sqlString = "select produkt_namn, produkt_pris, sum(korg_antal) as antal2 " &_
"FROM korg, produkter " &_
"WHERE korg_userID=" & userID & " " &_
"AND korg_produktID= produkt_id " &_
"GROUP by produkt_namn, produkt_pris" & _
"ORDER by produkt_namn DESC"
SET RS = Con.Execute( sqlString )
Medlem sedan dec. 200012 464 inlägg
#10
sqlString = _
"select produkt_namn, " & _
"produkt_pris, " & _
"sum(korg_antal) as antal2, " &_
"(select min(korg_id) " &_
" from korg " &_
" where korg_userid = k.korg_userid " &_
" and korg_produktid = k.korg_produktid )" & _
"FROM korg k, produkter " &_
"WHERE k.korg_userID=" & userID & " " &_
"AND k.korg_produktID= produkt_id " &_
"GROUP by produkt_namn, produkt_pris" & _
" ORDER by 4 DESC"
Medlem sedan juni 200032 967 inlägg
#11

jag hade nog droppat in ett litet mellanslag före ORDER BY i frågan.

296 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
169 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)