Just nu i M3-nätverket
Jump to content

Antal rader när man använder Group By


greattaste

Recommended Posts

Hej!

 

Har en klurig sql-fråga som jag inte får någon rätsida på. Hoppas på att det finns någon här som kan och vill hjälpa här, själv slår jag knutar på den lilla del av min hjärna som styr all logik.

 

Så här är det: jag har en sökfunktion som listar poster enligt denna fråga:

 

SqlGet = " 
SELECT AVG(value) as score, COUNT(value) as count, item.name, item.itemID
FROM item JOIN value 
ON item.itemID = value.itemID 
WHERE value.catID = '"& Request.QueryString("catID") &"' 
GROUP BY value.itemID 
HAVING score > 5 AND count > 2 
ORDER BY score DESC "

 

Då får jag alltså en lista över de "items" som har ett medelvärde i tabellen "value" över 5 (och där antalet värden i tabellen value är över 2).

 

Tabellerna ungefär:

item

name

itemID

 

value

itemID

catID

value

 

Också till problemet:

1) Jag vet inte hur jag ska gå tillväga för att skriva ut antalet träffar.. alltså, hur många "items" resulterar sökningen, hur många skrivs ut?

2) Jag vill kunna exkludera en item från sökningen... Till exempel om jag är inne på itemID = 1 så vill jag att alla items ska visas i listan förutom den som har itemID 1..

 

Någon som vet?

 

[inlägget ändrat 2009-02-24 10:48:12 av greattaste]

Link to comment
Share on other sites

1) löstes med att göra en till sql-förfrågan, där villkoret gick in som en bifråga:

 

SELECT count(itemID) as antal FROM item WHERE itemID IN (SELECT itemID FROM value WHERE catID = '"& Request.QueryString("catID") &"' GROUP BY itemID HAVING AVG(value)>5 AND COUNT(value)>2) ")

 

2) Löses med att lägga in funktionen i asp:n istället.. Aktuellt item inkluderas alltså fortfarande i queryn, men skrivs inte ut.

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...