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


Problem med ännu en sql

Postades av 2010-11-19 18:34:43 - Benni Svensson, i forum c# (c-sharp), Tråden har 25 Kommentarer och lästs av 2232 personer

Denna sql fungerar inte riktigt som jag hadde tänkt:
<code>
SELECT
f.id AS forumId,
f.svarPa, f.hits,
t_Forum_Kategori.kategori,
f.katId,
t_Forum_Kategori.moderat,
f.nick,
f.datum,
f.orginal,
f.icon,
f.rubrik,
f.visit,
t_Forum_Kategori.beskrivning,
(SELECT COUNT(*) FROM
t_Forum
WHERE
t_Forum.svarPA= f.id) AS Antal
FROM
t_Forum_Kategori
LEFT JOIN
t_Forum AS f
ON
t_Forum_Kategori.id = f.katId
WHERE
(f.id In (
select top 5 id
from
t_forum
where
id = f.id
order by
datum desc )
AND
(f.orginal)=True)
ORDER BY
t_Forum_Kategori.kategori,f.id DESC

</code>
Min önskan var att visa alla forumskategorierna och de 5 senaste trådarna i
varje kategori. Detta fungerar tyvärr inte, den visar alla.
Hur bör jag ändra detta?


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-02 12:12:22 - Benni Svensson

Jag kan inte få till det så att det fungerar som jag vill.
Om jag ändrar förutsättningarna, hur skulle sql:en se ut, om jag vill ha fram alla kategorier och alla inlägg som gjorts de senaste 30 dagarna?
Jag har försökt att labba med det, men jag får inte till det.


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-03 08:13:18 - Jan Bulér

Kan det här vara till någon hjälp.
http://www.google.se/#hl=sv&source=hp&biw=1395&bih=866&q=SELECT+TOP+N+Rows+Per+category&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=defa8e351d9b4134


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-03 12:25:48 - Benni Svensson

Tack Jan skall kolla det, skrev jag att det var för Access?


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-05 16:38:54 - Håkan Borneland

Hej,
Testa den här frågan (5 senaste trådarna), har inte Access så jag vet inte om syntaxen är rätt.
<code>
SELECT * FROM
(SELECT
f.id AS forumId,
f.svarPa,
f.hits,
t_Forum_Kategori.kategori,
f.katId,
t_Forum_Kategori.moderat,
f.nick,
f.datum,
f.orginal,
f.icon,
f.rubrik,
f.visit,
t_Forum_Kategori.beskrivning,
(SELECT COUNT(*) FROM t_Forum WHERE datum >= f.datum AND katId = f.katId) AS Ranking
FROM t_Forum_Kategori
LEFT JOIN t_Forum AS f ON t_Forum_Kategori.id = f.katId
WHERE f.orginal = True) AS a
WHERE a.Ranking <= 5
ORDER BY a.kategori, a.forumId DESC
</code>


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-05 22:58:20 - Benni Svensson

Hej Håkan.
Du har säkert någonting på g här, men jag får <b>syntaxfel i FROM-instruktion</b>.
Jag försöker att lokalisera felet men hitintills så har jag inte lyckats.


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-06 00:30:17 - Håkan Borneland

Mmm... ser att det saknas ett kommatecken efter t_Forum_Kategori.beskrivning i SELECTen.
Det finns också med ett AND i "första" WHERE som inte ska vara där.
Har ändrat i koden ovan.


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-06 11:00:18 - Benni Svensson

HEj Håkan.
Detta är tydligen min tur i livet :-(.
ERROR:
<b>Frågan är för komplex</b>
Jag undrar kan man inte bryta ner denna sql till flera frågor i Access och komma förbi problemet?


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-06 11:22:15 - Håkan Borneland

Byt databas, till en "riktig"... ;-)
Fungerar det om du tar bort den "yttre" frågan?
<code>
SELECT
f.id AS forumId,
f.svarPa,
f.hits,
t_Forum_Kategori.kategori,
f.katId,
t_Forum_Kategori.moderat,
f.nick,
f.datum,
f.orginal,
f.icon,
f.rubrik,
f.visit,
t_Forum_Kategori.beskrivning,
(SELECT COUNT(*) FROM t_Forum WHERE datum >= f.datum AND katId = f.katId) AS Ranking
FROM t_Forum_Kategori
LEFT JOIN t_Forum AS f ON t_Forum_Kategori.id = f.katId
WHERE f.orginal = True
</code>


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-06 12:49:52 - Benni Svensson

Hej Hågan.
Jo det fungerar. Men nu har du ju tagit bort möjligheten för top 5 i varje kategori..
<b> Byt databas, till en "riktig"... ;-) </b> kostnadskäl :-(


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-06 22:43:06 - Håkan Borneland

Tja Access kostar väl pengar medan SQL Server 2008 Express är gratis.
Plus att detta relativa enkla, blir så krångligt, men det kan ju bero på min okunskap om "verktyget".
Prova detta, skrivet ad hoc, så det kan behövas justeras.
<code>
SELECT
f.id AS forumId,
f.svarPa,
f.hits,
e.t_Forum_Kategori.kategori,
f.katId,
e.t_Forum_Kategori.moderat,
f.nick,
f.datum,
f.orginal,
f.icon,
f.rubrik,
f.visit,
e.t_Forum_Kategori.beskrivning
FROM t_Forum_Kategori AS e
INNER JOIN
(SELECT a.katId,
(SELECT COUNT(*) FROM t_Forum AS b
WHERE b.datum >= a.datum and b.katId = a.katId) AS ranking
FROM t_Forum AS a) AS c ON c.katid = f.katId AND c.ranking <= 5
LEFT JOIN t_Forum AS f ON e.t_Forum_Kategori.id = f.katId
WHERE f.orginal = True
</code>


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-07 10:38:18 - Benni Svensson

HGej Håkan.
<b>Tja Access kostar väl pengar medan SQL Server 2008 Express är gratis.</b> Nja det vet jag, men jag har min webbplats på Loopia och det är där som jag menar kostar pengar.
Jag är väldigt tacksam att du försöker hjälpa mig, men nu fick jag ett error:
<b>Syntaxfel i JOIN-operation</b>
Vad tror du?


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-07 12:08:11 - Håkan Borneland

Tja är ju som sagt dålig på Access.
Kan det vara INNER som är fel, kanske bara heter JOIN i Access?


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-07 12:25:59 - Benni Svensson

Nej du har rätt med LEFT JOIN det är något annat.


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-07 13:37:03 - Håkan Borneland

Om du tittar lite högre upp så ser du att jag skrivit INNER JOIN, det är den jag menar.
Kanske att ordet INNER inte fungerar i Access, kanske bara ska stå JOIN.


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-07 14:48:13 - Benni Svensson

Det blir samma fel om jag tar bort INNER


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-07 15:37:55 - Håkan Borneland

Ny version...
<code>
SELECT
f.id AS forumId,
f.svarPa,
f.hits,
e.t_Forum_Kategori.kategori,
f.katId,
e.t_Forum_Kategori.moderat,
f.nick,
f.datum,
f.orginal,
f.icon,
f.rubrik,
f.visit,
e.t_Forum_Kategori.beskrivning
FROM t_Forum_Kategori AS e
JOIN
(SELECT a.katId,
(SELECT COUNT(*) FROM t_Forum AS b
WHERE b.datum >= a.datum and b.katId = a.katId) AS ranking
FROM t_Forum AS a) AS c ON c.katid = f.katId AND c.ranking <= 5
LEFT JOIN t_Forum AS f ON e.t_Forum_Kategori.id = f.katId
WHERE f.orginal = True
</code>


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-07 15:45:08 - Benni Svensson

Håkan.
Nu tycker jag synd om dig, och jag förstår att du kämpar på för att lösa detta, men tyvärr fel igen <b>Syntaxfel i FROM-instruktionen</b>.
Är det här helt hopplöst?


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-07 15:52:41 - Håkan Borneland

Det är lugnt.
Nu var det så att jag hann att ändra i senaste versionen.
Frågan är vilken du testade.
Prova gärna igen med den som syns nu.


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-07 16:54:20 - Benni Svensson

Tack men samma fel <b>Syntaxfel i FROM-instruktionen</b>.
Suck...


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-08 13:03:17 - Håkan Borneland

Hmm...
Tyvärr så har jag mycket att göra nu, så jag hinner inte grotta ner mig i hur man skriver i Access, tyvärr.
Hoppas någon annan med Access och kunskaper, kan skriva om det så det fungerar.
I SQL Server hade detta inte varit något som helst problem att göra, men, men.
Lycka till, jag kikar in då och då för att se vad som händer.


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-08 13:17:43 - Jan Bulér

Jag har inte kollat din frågeställning så noga men är inte det något liknande som jag svarade på i
tråden [Summering av urvalsfråga.], mitt svar var [Sv: Summering av urvalsfråga.].

Där gällde det istället för de fem senaste så ville man ha poster för respektive kategori inom ett datumintervall + alla kategorier även om de inte hade poster i datumintervallet.




Svara

Sv: Problem med ännu en sql

Postades av 2010-12-08 13:25:37 - Benni Svensson

Håkan tack för att du försökte.
Jan det här med datum är inte så viktigt, det jag ville ha är:
1) ta fram alla kategorier.
2) ta fram de 5 senaste inläggen i varje kategori.
3) räknar hur många hits(antal) som varje inlägg ar.

I princip så har jag löst allt detta, utom det här med de 5 senaste, det är där problemet är.
Jag tittade på din tidigare lösning, och jag måste säga att jag inte förstod den alls.


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-08 16:49:04 - Jan Bulér

Ok, funkar det om du gör så här. Jag har bara tagit med några fält från dina tabeller men principen är liknande den jag använde i mitt svar i den andra tråden.

Skapa förs en fråga som returnerar Top 5 forumposter i respektive kategori.

qryForumTop5
<code>
SELECT DISTINCT *
FROM t_forum AS f
WHERE f.Id In (SELECT TOP 5 Id FROM t_forum WHERE KatId = f.KatId ORDER BY Datum DESC);
</code>

Skapa sen en fråga som returnerar alla kategorier samt Top 5 poster från qryForumTop5 där kategori-id matchar.

qryAllCategoriesAndTop5Posts
<code>
SELECT fk.ID, fk.Beskrivning, fk.Moderat, fk.Kategori, qryForumTop5.ID, qryForumTop5.KatId, qryForumTop5.Datum, qryForumTop5.Rubrik
FROM t_forum_kategori AS fk LEFT JOIN qryForumTop5 ON fk.Id = qryForumTop5.KatId
ORDER BY fk.Kategori;
</code>

Om du utgår ifrån detta så kan du säker fixa till det som du vill ha det.


Svara

Sv: Problem med ännu en sql

Postades av 2010-12-08 18:41:35 - Benni Svensson

Det bör alltså se ut så här:
<code>
//qryForumTop5
SELECT DISTINCT *
FROM t_forum AS f
WHERE (((f.Id) In
(SELECT TOP 5 Id FROM t_forum WHERE KatId = f.KatId AND f.orginal=TRUE ORDER BY KatId,Datum DESC)));
//jag måste sortera ut så att det är orginalposterna

//qryAllCategoriesAndTop5Posts
SELECT fk.ID, fk.Beskrivning, fk.Moderat, fk.Kategori, qryForumTop5.ID,
qryForumTop5.KatId, qryForumTop5.orginal,
qryForumTop5.Datum, qryForumTop5.senast, qryForumTop5.svarPa, qryForumTop5.icon, qryForumTop5.hits, qryForumTop5.visit,
qryForumTop5.Rubrik, qryForumTop5.inlagg,
(SELECT COUNT(*) FROM
t_Forum WHERE t_Forum.svarPA= f.id) AS Antal
FROM t_forum_kategori AS fk LEFT JOIN qryForumTop5 ON fk.Id = qryForumTop5.KatId
WHERE (((qryForumTop5.orginal)=True))
ORDER BY fk.Kategori;
//jag lade in cont för att få antalet svar
</code>
Ser detta rätt ut?
När jag tittar på forumet idag så är det relativt många inlägg, men nu blir det inte så många..


Svara

Sv:Problem med ännu en sql

Postades av 2010-12-08 21:44:28 - Jan Bulér

Har inte hunnit kolla så noga men raden
<code>
WHERE (((qryForumTop5.orginal)=True))
</code>
kan du väl ta bort, du har ju redan säkerställt att det enbart är originalposter i qryForumTop5.


Svara

Nyligen

  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino

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 570 878
27 965
271 772
599
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