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 sortering av SQL-fråga

Postades av 2006-05-30 09:34:30 - Fredrik Linder, i forum access, Tråden har 3 Kommentarer och lästs av 1087 personer

Jag har en SQL-fråga som jag via ASP ställer mot en Access 2002-databas.
Problemet är när jag ska sortera frågan efter kolumnen Promme så får jag upp ett felmeddelande men om jag sorterar efter id_user går det alldeles utmärkt.

Jättetacksam för all hjälp jag kan få!


<b>FUNGERANDE FRÅGA UTAN SORTERING</b>
SELECT TOP 10 id_user, ((((SELECT sum(Testvikt) FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND ID_user = Händelse_kopplingar.ID_user) - (((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) / 10) * ((Datediff('s', (SELECT TOP 1 datum_skapades FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND Enheter_transaktioner.ID_user = Händelse_kopplingar.ID_user AND NOT isnull(aktuell_promille) ORDER BY Datum_skapades ASC), '"&DateAdd("h",6, now())&"'))/3600)))) / ((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) * (SELECT IIF(kontrollv <1, 7.88, 5.85) FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user))) AS Prommen FROM Händelse_kopplingar WHERE ID_Händelse=1 AND TYP=1 AND NOT isnull((SELECT TOP 1 ID FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND Enheter_transaktioner.ID_user = Händelse_kopplingar.ID_user AND NOT isnull(Alkoholvolym) ORDER BY Datum_skapades DESC))


<b>DEN EJ FUNGERANDE FRÅGAN MED SORTERINGEN</b>
SELECT TOP 10 id_user, ((((SELECT sum(Testvikt) FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND ID_user = Händelse_kopplingar.ID_user) - (((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) / 10) * ((Datediff('s', (SELECT TOP 1 datum_skapades FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND Enheter_transaktioner.ID_user = Händelse_kopplingar.ID_user AND NOT isnull(aktuell_promille) ORDER BY Datum_skapades ASC), NOW()))/3600)))) / ((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) * (SELECT IIF(kontrollv <1, 7.88, 5.85) FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user))) AS Prommen FROM Händelse_kopplingar WHERE ID_Händelse=1 AND TYP=1 AND NOT isnull((SELECT TOP 1 ID FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND Enheter_transaktioner.ID_user = Händelse_kopplingar.ID_user AND NOT isnull(Alkoholvolym) ORDER BY Datum_skapades DESC))
ORDER BY
((((SELECT sum(Testvikt) FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND ID_user = Händelse_kopplingar.ID_user) - (((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) / 10) * ((Datediff('s', (SELECT TOP 1 datum_skapades FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND Enheter_transaktioner.ID_user = Händelse_kopplingar.ID_user AND NOT isnull(aktuell_promille) ORDER BY Datum_skapades ASC), NOW()))/3600)))) / ((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) * (SELECT IIF(kontrollv <1, 7.88, 5.85) FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user)))
DESC


<b>FELMEDDELANDET</b>
syntax error. in query expression '((((SELECT sum(Testvikt) FROM Enheter_transaktioner WHERE ID_Händelse = 1 AND ID_user = Händelse_kopplingar.ID_user) - (((SELECT Vikt FROM user_uppgifter WHERE user_uppgifter.ID = Händelse_kopplingar.ID_user) / 10) * ((Datediff('s', '


Svara

Sv: Problem med sortering av SQL-fråga

Postades av 2006-06-01 12:06:14 - Mikael Sand

Oj oj oj. Det var en fråga det.
Jag skulle verkligen rekommendera dig i detta fall att använda vyer/frågor i access. Alla dina underfrågor definierar du som vyer/frågor och sen ställer du andra frågor mot dessa vyer/frågor. Det gör att det i alla fall är läsbart. Tyvärr kan de inte ta emot variabler men det kanske inte behövs.

Exempel för dig som inte vet vad jag talar om:
Fråga1:
Select * From Kunder Where Region = 'Norr';

Fråga2:
Select * From Fråga1 Where KundNamn = 'Bosses skotrar';

Fråga 2 kommer vara returnera de kunder som heter Bosses skotrar i region Norr även om det skulle finnas fler i söder.

I ditt fall kommer det alltså att bli mer lättläst och därigenom också lättare att debugga. En bonus är att du slipper alla kombnationer som access gärna lägger ett par extra paranteser kring för att vara säker.

Hoppas du blir hjälpt

//Mikael Sand


Svara

Sv:Problem med sortering av SQL-fråga

Postades av 2006-06-05 12:51:38 - Fredrik Linder

Hej Mikael.
Tack för att du tagit dig tid att försöka hjälpa mig.
Jag ska titta närmare på det du föreslog men kan man inte använda sig av variabler för att sortera med i Access?


Svara

Sv: Problem med sortering av SQL-fråga

Postades av 2006-07-28 22:21:33 - Kenneth Axi

Hmm... återigen någon som inte har förstått fördelen med att använda SQLs eller Access inbyggda funktion för frågor... Skapa en fråga direkt i databasen som utför det du vill göra för att sedan i ASP bara anropa den färdigsorterade frågan. Det gör det SÅ mycket enklare att felsöka och använda. Om du sedan har en SQL-databas i botten så kommer frågan dessutom att vara färdigindexerad vid anropet och därmed så blir det minimala väntetider för användaren.

SQL-anrop som endast hämtar information från databasen skall ytterst sällan ske direkt mot tabellen - du bör anropa färdiga frågor/procedures.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 768
27 960
271 761
351
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