Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Bäst antal gånger.

Postades av 2003-05-25 16:50:58 - Benni Svensson, i forum sql-server/msde, Tråden har 10 Kommentarer och lästs av 746 personer

Jag skulle behöva ha lite hjälp med denna SQL, jag får inte ihop den.
Vad jag skulle vilja ha ut är,
Som bäst(alltså bästa placering)
Antal ggr(alltså hur många gånger har låten varit bäst)
Vilket område(Sverige Europa, Världen)
Jag har haft denna biten som grund:
<code>
SELECT
MIN(t_placering.placering) AS Bast,
Count(t_Placering.Placering) AS AntalPlac, t_Område.Område
FROM (t_Område INNER JOIN t_Placering ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id))
INNER JOIN t_SongTitlar ON t_Placering.ArrNo = t_SongTitlar.ArrNo
WHERE t_SongTitlar.songtitel = 'my friend' AND t_Placering.Placering <> 0
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område
ORDER BY Bast,AntalPlac DESC
</code>
Jag får NÄSTAN fram rätt resultat, men jag har fel på hur han räknar. Jag ville ju få veta hur många gånger resp låt har varit bäst i resp område.


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 11:52:07 - Benni Svensson

Jag har kommit något längre, använt en annan SQL, men når ändå inte riktigt fram.
<code>
SELECT t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering,
Count(t_Placering.Placering) AS AntalGånger FROM t_Område
INNER JOIN (t_Placering INNER JOIN t_SongTitlar
ON t_Placering.ArrNo = t_SongTitlar.ArrNo)
ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id)
Where t_Placering.Placering <> 0
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering
HAVING (t_SongTitlar.songtitel='my friend' )
ORDER BY CASE t_Område.Område WHEN 'Sverige' THEN 1 WHEN 'Europa' THEN 2 ELSE 3 END, Min(t_Placering.Placering)
</code>
Vad som är felet är att jag ville bara ha top resultatet ifrån alla tre områdenna.
Som det nu är, så får jag alla resultaten.


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 15:07:09 - Andreas Hillqvist

Det lätaste är att först göra en vy. Sedan sammanställa den.


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 16:04:50 - Benni Svensson

Hej Andreas.
Det här har jag aldrig sysslat med, skulle du vilja förklara hur jag bör göra för att få mitt resultat?


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 16:38:39 - Jarle Skogheim

Funkar det inte med

<code>
SELECT TOP 10 .......
</code>

?


// Jarle


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 18:13:19 - Andreas Hillqvist

CREATE VIEW viewBästaPlaceringar AS
SELECT t_Placering.ArrNo, t_Placering.omr_Id, Min(t_Placering.Placering) AS Placering
GROUP BY t_Placering.ArrNo, t_Placering.omr_Id


SQL fråga;

SELECT t_SongTitlar.songtitel, t_Område.Område, viewBästaPlaceringar.Placering,
Count(*) AS AntalGånger
FROM (viewBästaPlaceringar INNER JOIN t_SongTitlar
ON viewBästaPlaceringar.ArrNo = t_SongTitlar.ArrNo) LEFT JOIN t_Område ON (viewBästaPlaceringar.omr_Id = t_Område.omr_Id)
WHERE (t_SongTitlar.songtitel='my friend' )
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, viewBästaPlaceringar.Placering
ORDER BY CASE t_Område.Område WHEN 'Sverige' THEN 1 WHEN 'Europa' THEN 2 ELSE 3 END, viewBästaPlaceringar.Placering


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 21:20:05 - Benni Svensson

Det ser ju jätteintressant ut, men när jag skulle göra viewn i QA så fick jag följande error:
<code>
Server: Msg 107, Level 16, State 3, Procedure viewBästaPlaceringar, Line 2
The column prefix 't_Placering' does not match with a table name or alias name used in the query.
Server: Msg 107, Level 16, State 1, Procedure viewBästaPlaceringar, Line 2
The column prefix 't_Placering' does not match with a table name or alias name used in the query.
Server: Msg 107, Level 16, State 1, Procedure viewBästaPlaceringar, Line 2
The column prefix 't_Placering' does not match with a table name or alias name used in the query.
Server: Msg 107, Level 16, State 1, Procedure viewBästaPlaceringar, Line 2
The column prefix 't_Placering' does not match with a table name or alias name used in the query.
Server: Msg 107, Level 16, State 1, Procedure viewBästaPlaceringar, Line 2

The column prefix 't_Placering' does not match with a table name or alias name used in the query.
</code>
Väldigt konstigt därför att tabelnamn och fälnamnen som du har skrivit in stämmer ju.


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 22:34:59 - Andreas Hillqvist

hmmm... Jga glömde From satsen i frågan. ;o)

CREATE VIEW viewBästaPlaceringar AS
SELECT t_Placering.ArrNo, t_Placering.omr_Id, Min(t_Placering.Placering) AS Placering
FROM t_Placering
GROUP BY t_Placering.ArrNo, t_Placering.omr_Id


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-26 22:54:49 - Benni Svensson

Nja Andreas, den fungerar inte riktigt som jag hade tänkt mig.
Jag glömde nog att säga men den skall ju inte ta med nollorna(0).
Sen räknar den inte korrekt.
När jag kopierade/klistrade in din kod(efter att har försökt förstå mig på den) så gjorde jag viewn, inga problem.
Sen så körde jag den i QA och där ser jag problemet.
Den räknar nollan som högre(lägre) tal än 1:an.
I mitt exempel så räknar den My Friend som etta en gång i Sverige, faktum är att det finns 14 sådana poster, så den skulle alltså räkna till 14..
För att ta bort nollorna så försökte jag med:
AND viewBästaPlaceringar.placering <> 0
Detta resulterar i att jag fick enbart fram post i Sverige, inte Europa där det också finns ett par ettor.
Så någonting är nog inte så bra....
Vad tror du?


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-27 00:01:49 - Andreas Hillqvist

CREATE VIEW viewBästaPlaceringar AS
SELECT t_Placering.ArrNo, t_Placering.omr_Id, Min(t_Placering.Placering) AS Placering
FROM t_Placering
WHERE t_Placering.Placering > 0
GROUP BY t_Placering.ArrNo, t_Placering.omr_Id




SELECT t_SongTitlar.songtitel, t_Område.Område, viewBästaPlaceringar.Placering,
Count(*) AS AntalGånger
FROM ((viewBästaPlaceringar LEFT JOIN t_SongTitlar
ON viewBästaPlaceringar.ArrNo = t_SongTitlar.ArrNo) LEFT JOIN t_Område ON viewBästaPlaceringar.omr_Id = t_Område.omr_Id) LEFT JOIN t_Placering ON (viewBästaPlaceringar.ArrNo = t_Placering.ArrNo) AND (viewBästaPlaceringar.Placering = t_Placering.Placering) AND (viewBästaPlaceringar.omr_Id = t_Område.Placering)
WHERE (t_SongTitlar.songtitel='my friend')
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, viewBästaPlaceringar.Placering
ORDER BY CASE t_Område.Område WHEN 'Sverige' THEN 1 WHEN 'Europa' THEN 2 ELSE 3 END, viewBästaPlaceringar.Placering



Missade att ta med t_Placering i frågan.

Istället för att soerera områden på en case sats bör du lägga till en kolumn i t_Område för sortering.


Svara

Sv: Bäst antal gånger.

Postades av 2003-05-27 00:28:03 - Benni Svensson

mmm jag får detta error, jag hittar inte var jag skall ändra:

Server: Msg 207, Level 16, State 3, Line 1
Invalid column name 'Placering'.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 724
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies