---
title: "SQL Join"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/186655-sql-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "firstchoice"
published: "2011-04-13T07:22:41.000Z"
updated: "2011-04-13T11:54:58.000Z"
replies: 3
views: 1007
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/186655-sql-join"
---

# SQL Join

## #1 — firstchoice, 2011-04-13T07:22Z

```
SELECT PO.[No_], PO.[Description], PO.[Source No_], PO.[Ending Date], PO.[Quantity], PO.[Sales Order No_], PS.[PrulStatusComments], PS.[PrulStatusPlanDate], PS.[PrulStatusSign], CR.[Cross-Reference No_]
FROM [Production Order] PO
INNER JOIN [Item Cross Reference] CR ON PO.[Source No_] = CR.[Item No_]
LEFT JOIN [tblPrulStatus] PS ON PS.[PrulStatusPrulNr] collate Finnish_Swedish_CS_AS = PO.[No_] collate Finnish_Swedish_CS_AS
WHERE PO.[Status] = '3'
ORDER BY PO.[Ending Date]
```

Koden fungerar, men problemet är att tabellen \[Item Cross Reference\] innehåller ibland flera rader som är kopplade till \[Production Order\]. Men i dessa fallen skulle jag bara vilja visa den första träffen. Är detta möjligt?

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

## #2 — Compusa, 2011-04-13T10:57Z

Så här kanske

```
SELECT PO.[No_], PO.[Description], PO.[Source No_], PO.[Ending Date], PO.[Quantity], PO.[Sales Order No_], PS.[PrulStatusComments], PS.[PrulStatusPlanDate], PS.[PrulStatusSign], CR.[Cross-Reference No_]
FROM [Production Order] PO
INNER JOIN
(
    SELECT DISTINCT [Item No_]
    FROM [Item Cross Reference]
) CR ON PO.[Source No_] = CR.[Item No_]
LEFT JOIN [tblPrulStatus] PS ON PS.[PrulStatusPrulNr] collate Finnish_Swedish_CS_AS = PO.[No_] collate Finnish_Swedish_CS_AS
WHERE PO.[Status] = '3'
ORDER BY PO.[Ending Date]
```

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

## #3 — firstchoice, 2011-04-13T11:54Z

fungerar ifall jag ta bort CR.\[Cross-Reference No\_\] från SELECT

men då visas ju inte just det referäns värde som jag vill ha fram.

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

## #4 — LarsG, 2011-04-13T11:54Z

Det beror på vad du menar med första, eftersom tabeller inte är ordnade mängder så är första inte definierat.

```
select PO.[No_], 
       PO.[Description], 
       PO.[Source No_], 
       PO.[Ending Date], 
       PO.[Quantity], 
       PO.[Sales Order No_], 
       PS.[PrulStatusComments], 
       PS.[PrulStatusPlanDate], 
       PS.[PrulStatusSign], 
       CR.[Cross-Reference No_]
  from [Production Order] PO
  join (select [Item No_],
               min([Cross-Reference No_])
          from [Item Cross Reference]
         group by [Item No_]) as cr
    on PO.[Source No_] = CR.[Item No_]
  left join [tblPrulStatus] PS 
    on PS.[PrulStatusPrulNr] collate Finnish_Swedish_CS_AS = PO.[No_] collate Finnish_Swedish_CS_AS
 where PO.[Status] = 3
 order by PO.[Ending Date]
```

Detta returnerar det lägsta värdet för  CR.\[Cross-Reference No\_\] per produktorder

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/186655-sql-join
