03. april 2011 - 10:18Der er
6 kommentarer og 1 løsning
begræns returning til det samlede antal modeller
SELECT m.modelId, MIN(p.price) AS minprice, MAX(p.price) AS maxprice, COUNT(*) AS totalPrices FROM Model AS m INNER JOIN Product AS p ON p.modelId = m.modelId WHERE (m.brandId = 6) GROUP BY m.modelId, p.price
ovenstående forespørgel virkede fint indtil jeg tilføjede "group by p.price"
Før returnerede den kun et resultat med unikke m.modelId Efter jeg har tilføjet p.price i group by er der flere rækker som har det samme m.modelId - jeg ønsker kun at have éen række pr. m.modelId - hvordan gør jeg det?
jeg kunne som sagt få den til at returnere "unikke" m.modelIds ved at benytte groupBy - derfor benytter jeg group by.
Det den gør er at vise et modelId og mindstePris/højeste pris for den model samt samlede antal priser fundet for den model (priser findes i product tabellen)
Hvis det kan lade sig gøre at samle en sådan visning pr. modelId uden group by vil jeg gerne se det. problemet med at benytte opstår som sagt når jeg tilføjer group by p.price - så returnerer den ikke unikke modelIds længere.
petermonielsen, jeg stod og skulle afsted, derfor svarede jeg lidt rask. Men du vil, for hver model med brandid = 6, have hoejeste pris, laveste pris, og antal priser. Det faar du med denne query:
SELECT m.modelId, MIN(price) AS minprice, MAX(price) AS maxprice, COUNT(*) AS totalPrices FROM Model m JOIN Product p ON m.modelId = p.modelId where brandId = 6 GROUP BY m.modelId;
Det er rigtigt - men jeg vil samtidig også gerne sortere resultater efter product.price og derfor bliver jeg nødt til at have product.Price med i group by listen. Dette giver mig det proble at modelid rækker returneredes ikke længere er unikke
Jamen saa proev at forklar hvilket output du vil have. Du siger at du for hver modelid (hvor brandid = 6) vil have en raekke. Hvad vil du vise i den raekke? Jeg troede du ville vise den laveste og den hoejeste pris plus antal priser for hver modelid. Er der mere du vil vise for hver modelid? Du vil 'sortere resultater efter product.price'. Hvordan noejagtigt skal det se ud? Vil du stadig have en raekke for hver modelid med minpris, maxpris, og antal priser, men saaledes at raekkerne staar i raekkefoelge efter min priser? Efter max priser? Efter antal priser?
Det vil kun vaere muligt at foreslaa dig en query hvis du fortaeller hvilket resultat queryen skal levere. Kan du give et eksempel?
petermonielsen, traaden gik i staa. Den loesning jeg foreslog duede ikke fordi jeg ikke havde forstaaet hvad du proevede at opnaa. Jeg bad dig derfor forklare naermere, men du kom ikke tilbage. Er spoergsmaalet i mellemtiden ikke laengere aktuelt (for eksempel fordi du fandt en loesning?) I saa fald vil jeg bede dig lukke spoergsmaalet (opret selv et svar og accepter det) saa det ikke laengere staar som aabent i min (og andres) liste af indlaeg. Hvis paa den anden side problemet stadig bestaar vil jeg mene jeg kan foreslaa en loesning hvis du vil forklare problemet naermere.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.