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 filtrering...

Postades av 2013-01-25 11:36:19 - Tommy Leandersson, i forum sql-server/msde, Tråden har 3 Kommentarer och lästs av 6670 personer

Har kört med denna SQL ett tag nu och helt plötsligt så får den för sig att köra TimeOut på anropet ifrån servern, men även när jag kör den i SQL Managment Studio...

SELECT a.aName, a.aShortName, a.stStartDateTime, a.stStopDateTime, a.stTime, a.stBrakeTime, a.aID, s.sName, a.stNote, s.sType 
FROM actors a LEFT OUTER JOIN show s ON a.teID = s.teID WHERE (a.stStartDateTime BETWEEN @startDate AND @endDate) AND (a.aShortName 
IN (SELECT DISTINCT actors.aShortName FROM actors INNER JOIN show ON actors.teID = show.teID WHERE show.sShortName = @shortName)) 
ORDER BY a.aShortName, a.stStartDateTime


Om jag kör:
SELECT a.aName, a.aShortName, a.stStartDateTime, a.stStopDateTime, a.stTime, a.stBrakeTime, a.aID, s.sName, a.stNote, s.sType FROM actors a LEFT OUTER JOIN show s ON a.teID = s.teID WHERE (a.stStartDateTime BETWEEN @startDate AND @endDate) AND (a.aShortName IN (SELECT DISTINCT actors.aShortName FROM actors INNER JOIN show ON actors.teID = show.teID)) ORDER BY a.aShortName, a.stStartDateTime


Där jag plockar bort villkåret "WHERE show.sShortName = @shortName" och hämtar ut allt så funkar det, tar jag bort "(a.stStartDateTime BETWEEN @startDate AND @endDate) AND" och behåller "WHERE show.sShortName = @shortName" så funkar det oxå. Är lite tom på idéer varför dessa två var för sig fungerar, men inte tillsammans... eller, det har fungerat tills nu i veckan då de inte vill vara med och leka....

Vad är det jag gör förenklat...
Jag har två tabeller... en med skådespelare och en med föreställningar. Sen ska jag plocka ut alla skådespelare som är med i en viss föreställning under en viss period. Kopplingen mellan föreställningen och skådis är ett ID som är döpt till teID. show.sShortName är en VarChar(50)


Svara

Sv: Problem med filtrering...

Postades av 2013-01-25 12:26:22 - Tomas Granlund

Vilka index har du på tabellerna och - framför allt - vilka index används (du kan t.ex. se det genom att köra queryn med alternativet "include actual execution plan")?

Behöver du verkligen göra den något yxiga sub-queryn för att matcha på @shortName?

SELECT a.aName, a.aShortName, a.stStartDateTime, a.stStopDateTime, a.stTime, a.stBrakeTime, a.aID, s.sName, a.stNote, s.sType 
FROM actors a 
INNER JOIN show s ON a.teID = s.teID
WHERE (a.stStartDateTime BETWEEN @startDate AND @endDate) 
	AND s.sShortName = @shortName
ORDER BY a.aShortName, a.stStartDateTime


Svara

Sv:Problem med filtrering...

Postades av 2013-01-25 22:48:55 - Tommy Leandersson

Problemet är att skådespelarna kan vara med i andra föreställningar än den uthämtade... Så att jag vill hämta ut alla skådespelares tider för en period, med utgång att dom ska vara med i en specifik föreställning.

Jag har bara lyckats få dit index på ID:et på varje post... helst skulle jag vilja ha det på de posterna som kopplar ihop dessa två tabeller och sen det fältet som filtrerar ut vilken pjäs de är med i. Är inte riktig vän med SQL 2005 och Managment Studio... ännu...

Har nu gjort en "work around" där jag plockat ut <code>SELECT DISTINCT actors.aShortName FROM actors INNER JOIN show ON actors.teID = show.teID WHERE show.sShortName = @shortName</code> och skapat en CSV-string som jag sedan använder...

<code>SELECT a.aName, a.aShortName, a.stStartDateTime, a.stStopDateTime, a.stTime, a.stBrakeTime, a.aID, s.sName, a.stNote, s.sType FROM actors a LEFT OUTER JOIN show s ON a.teID = s.teID WHERE (a.stStartDateTime BETWEEN @startDate AND @endDate) AND (a.aShortName IN (@actorsCSV)) ORDER BY a.aShortName, a.stStartDateTime</code>

För mig så är mitt första försök samma som min "Work Around"...


Svara

Sv: Problem med filtrering...

Postades av 2013-01-26 07:17:49 - Tomas Granlund

Här finns en guide till CREATE INDEX i T-SQL (med exempel längst ner):
http://msdn.microsoft.com/en-us/library/ms188783.aspx

Den här borde ge alla föreställningar för en skådespelare som har varit med i en specifik föreställning

SELECT a.aName, a.aShortName, a.stStartDateTime, a.stStopDateTime, a.stTime, a.stBrakeTime, a.aID, s.sName, a.stNote, s.sType 
FROM actors a 
INNER JOIN show s ON a.teID = s.teID
INNER JOIN show sTarget ON a.teID = sTarget.teID
WHERE (a.stStartDateTime BETWEEN @startDate AND @endDate) 
    AND sTarget.sShortName = @shortName
ORDER BY a.aShortName, a.stStartDateTime


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 762
27 959
271 761
367
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