---
title: "Sql-fråga..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/166180-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "freddyk"
published: "2007-11-07T10:40:22.000Z"
updated: "2007-11-20T13:23:48.000Z"
replies: 5
views: 765
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/166180-sql-fråga"
---

# Sql-fråga...

## #1 — freddyk, 2007-11-07T10:40Z

Hallå SQLare,

Behöver er hjälp med något rätt basic, kan jag tänka. Vill få fram de faser som inte är kopplade till ett visst projekt dvs de faser som inte har en koppling till projekt i tabellen projektFas.

Jag har 3 tabeller. Tabell Projekt (pk projID), tabell Fas (pk fasID) och tabell projektFas (pk projID och fasID).

Jag vill få fram de faser som inte är kopplade till projID.

Följande SQL har jag:

```
	SELECT dbo.malte_projekt_fas.fasID,dbo.malte_projekt_fas.fasNamn,dbo.malte_projekt_fas.fasBeskr,dbo.malte_projekt_fas.fasUnik
	FROM dbo.malte_projekt_fas
		INNER JOIN dbo.malte_projekt_projektFas ON dbo.malte_projekt_projektFas.projektFasID = dbo.malte_projekt_fas.fasID
	WHERE dbo.malte_projekt_fas.fasUnik = 'False' AND dbo.malte_projekt_projektFas.projektID <> @projid
```

Detta visar de faser som är kopplade till andra projektID även om dessa faser är kopplade till det projektID jag skickar in i @projID. Detta vill jag undvika.  Vill endast ha ut de faser som är kopplade till andra projektID och som inte är kopplade till inkommande @projID över huvud taget.

Några förslag på hur jag kan modifiera SQLen?

Tack på förhand.

Använder SQL server 2005.

Permalänk: https://www.webforum.nu/p/166180

## #2 — LarsG, 2007-11-07T10:54Z

```
select * 
 from fas
 where not exists
  (select *
      from projektfas
     where fas.fasid = projektfas.fasid
       and projid = @projid)
```

Permalänk: https://www.webforum.nu/p/2046897

## #3 — freddyk, 2007-11-07T12:03Z

Super!

Tack LarsG!

Permalänk: https://www.webforum.nu/p/2046912

## #4 — freddyk, 2007-11-20T11:01Z

Behöver hjälp med ytterligare en NOT EXISTS

Varför får jag inte fram ngt resultat i nedanstående fråga? Frågorna var för sig går bra men ihop blir det nada. Tacksam för hjälp. :)

Nedanstående ska ta fram de anställda som inte finns med i checklistaRadAnstalld med sitt ID och visa dem.

Första select-delen får fram alla anställda den andra de anställda med radID = 1. Fungerar som sagt var för sig men ihop blir det noll. Vill ha fram de anställda som inte kommer fram i andra select-satsen.

```
SELECT DISTINCT anstID
FROM         dbo.malte_grund_anstalld
WHERE     (NOT EXISTS
                          (SELECT DISTINCT anstalldID
                            FROM          dbo.malte_kt_projekt_checklistaRadAnstalld
                            WHERE      (checklistaRadID = '1')))
```

Permalänk: https://www.webforum.nu/p/2052686

## #5 — LarsG, 2007-11-20T12:16Z

Du har ingen villkor mellan tabellerna. Om det finns någon i malte_kt_projekt_checklistaRadAnstalld som uppfyller villkoret checklistaRadID = 1
så får du alla poster i malte_grund_anstalld. Att ange distinct i en subfråga är onödigt.

```
SELECT anstID
FROM    dbo.malte_grund_anstalld mga
WHERE  NOT EXISTS
         (SELECT *
            FROM  dbo.malte_kt_projekt_checklistaRadAnstalld mpc
          WHERE mga.anstID =  mpc.anstalldID
              and checklistaRadID = 1)
```

Permalänk: https://www.webforum.nu/p/2052694

## #6 — freddyk, 2007-11-20T13:23Z

Det är ju klart! Tack LarsG. Det tiltar ibland (o inte så sällan heller)  ;)

Permalänk: https://www.webforum.nu/p/2052705

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/166180-sql-fråga
