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


svår sql-sats...

Postades av 2008-10-01 16:50:49 - jonas Eriksson, i forum sql-server/msde, Tråden har 7 Kommentarer och lästs av 1296 personer

Hej!

Sitter med en lurig sql-sats, någon som vet hur man får fram nedanstående resultat?

RESULTAT:
------------
Namn|filnamn
------------
Kent|Kenta_tsd.gif
Torsten|Torstenewe_.gif
Eva|Johana_.gif
Sven|Evad_.gif
Johan|Svenasdf_.gif
Karl|Karlasdf_.gif


Tabeller som finns i databasen

------------
Tabellnamn: Namn
------------
TabellNamn|ObjectID|Namn
------------
123|121|Kent
123|122|Torsten
124|34|Eva
124|45|Sven
123|124|Johan
125|135|Karl

------------
Tabellnamn: 123
------------
ObjectID|filnamn
------------
121|Kenta_tsd.gif
122|Torstenewe_.gif
123|124|Johana_.gif

------------
Tabellnamn: 124
------------
ObjectID|filnamn
------------
34|Evad_.gif
45|Svenasdf_.gif

------------
Tabellnamn: 125
------------
ObjectID|filnamn
------------
125|135|Karlasdf_.gif

Tack på förhand


Svara

Sv: svår sql-sats...

Postades av 2008-10-01 17:10:12 - Johan Djupmarker

Varför har du olika tabellnamn (123, 124 och 125)? Känns som en väldigt dum lösning... Går ju lösa, men känns smidigare att göra en korrekt struktur.

/Johan


Svara

Sv:svår sql-sats...

Postades av 2008-10-01 17:14:43 - jonas Eriksson

Hej, Anledningen är den att databasen är autogenerad då den i grunden är baserat på ett objektorienterat synsätt.
Egentligen skall man inte gå direkt mot databasen utan via en applikations gränssnitt, i det här fallet är jag dock tvungen att göra så..


Svara

Sv: svår sql-sats...

Postades av 2008-10-01 17:26:46 - Johan Djupmarker

SELECT Namn, filnamn FROM Namn INNER JOIN [123] ON Namn.ObjectID = [123].ObjectID WHERE Namn.TabellNamn = 123
UNION ALL
SELECT Namn, filnamn FROM Namn INNER JOIN [124] ON Namn.ObjectID = [124].ObjectID WHERE Namn.TabellNamn = 124
UNION ALL
SELECT Namn, filnamn FROM Namn INNER JOIN [125] ON Namn.ObjectID = [125].ObjectID WHERE Namn.TabellNamn = 125

/Johan


Svara

Sv:svår sql-sats...

Postades av 2008-10-01 21:59:21 - Magnus Bergström

Problemet blir ju när du ska försöka generera sökningen dynamiskt.

I så fall måste du nästan först exekvera en fråga där du får alla ObjectID:

1. SELECT n.[Namn], n.[tabellnamn] FROM Namn n

Du tar sen resultatet från denna fråga och bygger ihop frågan via en sträng:

(ful pseudo c#kod)
<code>
string query2 = "";
string union = "";
foreach (row in fråga1resultset)
{
query2 += union;
query2 += "SELECT n.Namn, filnamn FROM Namn n INNER JOIN [" + row.getString(1) + "] o ON n.ObjectID = o.ObjectID" + Environment.NewLine;
union = "UNION ALL" + Environment.NewLine;
}

//execute query2;
</code>

Konceptet borde funka, lär ju behövas snyggas till lite :-)


Svara

Sv: svår sql-sats...

Postades av 2008-10-02 08:46:41 - Tomas Granlund

Ett alternativ (säkert sämre prestanda, men kanske lättare att bolla vidare med):

SELECT n.namn, COALESCE(a.filnamn, b.filnamn, c.filnamn) AS filnamn
FROM Namn n
	LEFT OUTER JOIN 123 a ON n.ObjectId = a.ObjectId
	LEFT OUTER JOIN 124 b ON n.ObjectId = b.ObjectId
	LEFT OUTER JOIN 125 c ON n.ObjectId = c.ObjectId


Givet att det finns <b>exakt en matchning i någon av filnamnstabellerna</b> per skalle

Edit: fetstil


Svara

Sv:svår sql-sats...

Postades av 2008-10-02 09:32:15 - Johan Djupmarker

Tomas, det där kommer inte bli så bra om samma ObjectID förekommer i de olika tabellerna... Nu vet vi ju dock inte om så är fallet.

/Johan


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 615
27 953
271 709
5 471
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