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


hitta raden i databas???

Postades av 2004-09-24 09:52:25 - Johan Rönn, i forum sql-server/msde, Tråden har 17 Kommentarer och lästs av 668 personer

Jag har en tabell med svar på en massa frågor från olika användare. Varje svar är kopplat till en användare + frågan och innehåller datumet när svaret lämnades.

Mitt problem är att jag vill få ut hela rader från denna databas med senaste lämnade svaret på varje användare och fråga. Raderna innehåller mer information än de nämnda och därför skapar det problem.

hur gör jag detta??? Jag har proveat en massa saker men får inte till sql-frågan.

Det är inte detta jag är ute efter... exempel

SELECT frågid,anvId, MAX(Datum) AS MaxDatum
FROM tabell a
WHERE (klass= 141)
GROUP BY tStudentId,tElementQuestionRadioId

Här får jag inte ut hela rader.


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 10:07:19 - Per Karlsson

Inkludera alla kolumner som du vill ha ut i svaret i select-listan. I group by inkluderar du alla kolumner utom de som du gjort någon aggregering på.
T.ex.
<CODE>
SELECT frågid,anvId, klass, ... resten av dina kolumner utom Datum... ,MAX(Datum) AS Datum
FROM tabell
WHERE (klass= 141)
GROUP BY frågid,anvId, klass, ... resten av dina kolumner utom Datum...
</CODE>

/Pelle


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 10:07:28 - Patrik Dahlén

Vad menar du med hela rader? Alla kolumner eller?
I så fall radar du upp alla kolumnnamn efter SELECT. Man kan även göra en SELECT * men alternativ ett är att rekommendera.
Rekommenderar även att du tittar på lite sql tutorials.


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 10:25:18 - Johan Rönn

Har redan prvat det men får inte till det.

Jag vill få ut alla columner.

Mitt problem är att jag inte får ta med mig de andra columnerna i GROUP BY för då får jag inte bara fram det senaste som en person svarat på en viss fråga utan då får jag med mig alla svar. Jag vill bara få ut alla de rader (alla columner i varje rad) som är sista svaret på frågan på varje användare.

Det får jag inte om jag gruppera efter allt i tabellen.

Har jag fattat helt fel??

Detta är likt det jag vill göra.

SELECT
l1.camid as cid,
l1.author as author,
date_format(l1.log_date, '%m-%d-%y %H:%i') as log_date,
l1.type as type,
l1.city as city,
l1.state as state,
l1.log_date,
c.name as name,
count(*) as logs
FROM logs l1
JOIN cameras c ON l1.camid = c.id
INNER JOIN logs l2 ON l1.camid = l2.camid
GROUP BY l1.camid, l1.author, l1.log_date
HAVING l1.log_date = max(l2.log_date)
ORDER BY l1.log_date desc
LIMIT 20


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 10:35:42 - Johan Rönn

Jag har löst det en gång men funktionen är för slö. Det jag är ute feter i slutändan är antalet godkända svar (bRightANswer) som en person har gjort som sitt sista svar som lämnats.

SELECT COUNT(tStudentId) AS nbrOfOk, tStudentId
FROM dbo.VIEWtestMultipleChoiceResult a
WHERE tClass=278 AND bShowQuestionResult = 0 AND (bRightAnswer = 1) AND (NOT (tStudentId IN
(SELECT tStudentId
FROM VIEWtestMultipleChoiceResult
WHERE tClass=278 AND bRightanswer = 1 AND sDate > a.sDate AND a.tElementQuestionRadioId = tElementQuestionRadioId AND a.tStudentId = tStudentId))) AND
(NOT (tStudentId IN
(SELECT tStudentId
FROM VIEWtestMultipleChoiceResult
WHERE tClass=278 AND bRightAnswer = 0 AND sDate > a.sDate AND a.tElementQuestionRadioId = tElementQuestionRadioId AND a.tStudentId = tStudentId)))
GROUP BY tStudentId

Lite skumt kanske men jag hoppas ni kan avläsa det.

Jag MÅSTE snabba upp detta.

Hälsninigar Johan


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 10:37:44 - Mikael Wedham

Använd datat du vill gruppera ut:
<code>
select CUSTOMERID, MAX(orderdate) AS Maxdatum
from [orders]
group by customerid
</code>

Använd detta som en deriverad tabell.

<code>
SELECT * from orders o inner join
(select CUSTOMERID, MAX(orderdate) AS Maxdatum
from [orders]
group by customerid) x
on o.customerid = x.customerid
WHERE orderdate = MaxDatum
</code>

Funkar på Northwind

Visa tabellstrukturen så kan någon översätta...

/micke


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 11:01:50 - Johan Rönn

Jag har provat det med och det går ända långsamt.

Jag får jobba vidare på det. Kanske inte kan få ned hastigheten något.

Det är rätt mycket information då det är på 20000 rader den skall göra frågan.

Tackar ändå för all hjälp..

Hälsningar Johan Rönn


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 12:01:18 - Per Persson

<b>Använd detta som en deriverad tabell.</b>

"deriverad tabell"? Kan du ställa upp deriveringsregler för tabeller?


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 12:45:53 - Mikael Wedham

Det heter deriverad tabell, när man använder en selectsats som en tabell...

/micke


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 13:23:15 - Per Persson

Jag har aldrig sett uttrycket på svenska. Det känns väldigt "svengelskt".


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 13:24:12 - Patrik Dahlén

Mycket som är svengelska i programmering, eller. ;)


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 13:52:10 - Per Persson

Jo visst, men det känns som man tagit det engelska ordet "derived" som betyder "härledd" utan att ens försöka översätta det vettigt, och kanske t.o.m. använder det i fel sammanhang.

Har du någon referens som säger att det skall heta så?


Svara

Sv: hitta raden i databas???

Postades av 2004-09-24 14:50:27 - Per Karlsson

Jag brukar använda begreppet Inline View.


Svara

Sv: hitta raden i databas???

Postades av 2004-09-25 21:22:11 - Mikael Wedham

Inte mer än att mina kollegor använder detta svengelska ord också, på samma sätt som de använder Delegat som svensk term för delegate, när det egentligen skulle heta delegerare.

/micke


Svara

Sv: hitta raden i databas???

Postades av 2004-09-26 01:23:53 - Per Persson

Delegat är en korrekt översättning av delegate: http://lexikon.nada.kth.se/cgi-bin/sve-eng?:delegate


Svara

Sv: hitta raden i databas???

Postades av 2004-09-27 12:40:48 - Mikael Wedham

Både jag och nej. En delegerare är också en korrekt översättning, som dessutom beskriver funktionen bättre än vad en delegat gör. En delegerare delegerar funktionen till någon annan (som en "delegate" gör) medan en delegat gör det själv, å någon annans vägnar. Rent tekniskt pratar man om funktionen som körs (delegaten) när man menar pekaren till den (delegeraren)
Båda dessa heter delegate, och översätts korrekt till båda, men kontexten ger att det är mer korrekt med delegerare - vilket jag inte heller säger... ;)

/micke


Svara

Sv: hitta raden i databas???

Postades av 2004-09-27 13:17:16 - Per Persson

Google gav noll svar vid sökning på "deriverad tabell".


En sökning på "härledd tabell" gav ett svar, ett Word-dokument som innehöll följande text:

"<b>Bastabeller och vyer</b>

Om en databas innehåller en given mängd tabeller, går det alltid att generera nya tabeller från dessa.

De ursprungliga (givna) tabellerna kallas bastabeller och har en oberoende existens.

De härledda (nya) tabellerna definieras i termer av andra tabeller och deras existens hänger på dem.

En vy är en härledd tabell som är namngiven. Tabellen finns bara som ett uttryck och brukar därför kallas en virtuell tabell."


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
617
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