---
title: "Kombinera två recordset"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/180302-kombinera-två-recordset"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2009-09-16T16:02:39.000Z"
updated: "2009-09-16T19:07:34.000Z"
replies: 3
views: 419
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/asp/180302-kombinera-två-recordset"
---

# Kombinera två recordset

## #1 — devotion, 2009-09-16T16:02Z

Hej,

Jag har två recordset som jag vill kombinera, men får inte till det... 

```
'Skapa recordset
	Set Rs_O1=CreateObject("ADODB.Recordset")
	Set Rs_O2=CreateObject("ADODB.Recordset")
	
	'SQLfråga som hämtar UppdragsId från tblTask och användarsignatur från tblUsers beronde på vilken användare som är vald på en byggnad
	sSQL_O2 = " SELECT t.[Id] AS TaskId, t.TaskNr,u.[Sign] AS UserSign, u.[Name] AS UserName, ef.[Value] AS UserId" _
			& " FROM tblTask t" _
			& " INNER JOIN tblObject o" _
			& " ON t.Object2Nr = o.[Nr]" _
			& " INNER JOIN tblExtraFieldData ef" _
			& " ON o.[Id] = ef.OwnerId" _
			& " INNER JOIN tblExtrafieldDef ed" _
			& " ON ed.[Id ] = ef.FieldId" _ 
			& " INNER JOIN tblUsers u" _
			& " ON ef.[Value] = u.[Id]" _
			& " WHERE t.[UserSign] = '(kö)'" _
			& " AND t.[Status] = 0" _
			& " AND ed.OwnerType = 9" _
			& " AND ef.[Value] <> ''" _
			& " AND ed.Id = 10019"
			
	Rs_O2.Open sSQL_O2, Conn
	
	'SQLfråga som hämtar UppdragsId från tblTask och användarsignatur från tblUsers beronde på vilken  användare som är vald på en byggnad
	sSQL_O1 = " SELECT t.[Id] AS TaskId, t.TaskNr, u.[Sign] AS UserSign, u.[Name] AS UserName, ef.[Value] AS UserId" _
			& " FROM tblTask t" _
			& " INNER JOIN tblObject o" _
			& " ON t.Object1Nr = o.[Nr]" _
			& " INNER JOIN tblExtraFieldData ef" _
			& " ON o.[Id] = ef.OwnerId" _
			& " INNER JOIN tblExtrafieldDef ed" _
			& " ON ed.[Id ] = ef.FieldId" _ 
			& " INNER JOIN tblUsers u" _
			& " ON ef.[Value] = u.[Id]" _
			& " WHERE t.[UserSign] = '(kö)'" _
			& " AND t.[Status] = 0" _
			& " AND ed.ownertype = 8" _
			& " AND ef.[Value] <> ''" _
			& " AND ed.Id = 10002"

			
	Rs_O1.Open sSQL_O1, Conn
```

Logiken skall vara så här:

Om Rs_O2 ger träffar skall de posterna användas och de som resulterar från Rs_O1 skall ignoreras.

om bara Rs_O1 ger träffar skall skall de posterna användas.

Jag har provat en massa if-satser, men får inte till det....

Typ något sånt härnt:

```
If not Rs_O2.EOF then
    while not Rs_O2.EOF

       'använd resultatet från Rs_O2 
       Rs_O2.EOF.MoveNext
    Wend
else
    
    om båda resulterar poster använd Rs_O2.EOF

End if
```

Tack!
Mvh
Henrik

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

## #2 — @nders, 2009-09-16T16:50Z

```
if Rs_O2.eof then
     ' använd RS_O1
else
     ' använd RS_O2
end if
```

Eller precis tvärtom, krångla inte till det i onödan.

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

## #3 — devotion, 2009-09-16T18:13Z

Hmmm...

Det kanske blev en SQL-fråga av det hela...

Flytta i så fall...

```
SELECT t.[Id] AS TaskId, 
	t.TaskNr,
	u.[Sign] AS UserSign, 
	u.[Name] AS UserName, 
	efO2.[Value] AS UserIdO2,
	efO1.[Value] AS UserIdO1
FROM tblTask t 
	INNER JOIN tblObject o2 
		ON t.Object2Nr = o2.[Nr] 
	INNER JOIN tblExtraFieldData efO2
		ON efO2.OwnerId = o2.[Id] AND efO2.[Value] <> ''
	INNER JOIN tblExtrafieldDef edO2 
		ON edO2.[Id ] = efO2.FieldId AND edO2.OwnerType = 9 AND edO2.Id = 10019
	
	INNER JOIN tblObject o1 
		ON t.Object1Nr = o1.[Nr] 
	INNER JOIN tblExtraFieldData efO1
		ON efO1.OwnerId = o1.[Id] AND efO1.[Value] <> ''
	INNER JOIN tblExtrafieldDef edO1 
		ON edO1.[Id ] = efO1.FieldId AND edO1.OwnerType = 8 AND edO1.Id = 10002

	INNER JOIN tblUsers u 
		ON efO2.[Value] = u.[Id] 
WHERE t.[UserSign] = '(kö)' 
	AND t.[Status] = 0
```

Resultatet blir:

```
16280	WWW000199	HL	Henrik Lindell	10010	9999
16283	WWW000200	HL	Henrik Lindell	10010	9999
```

Det borde bli en post till, men den visas ju inte eftersom där finns det inte värden på både efO2.\[Value\] AS UserIdO2 och	efO1.\[Value\] AS UserIdO1

Hur skall det joinas för att det skall bli Null om det saknas?

Nästan iaf.,... :)

Mvh
Henrik

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

## #4 — @nders, 2009-09-16T19:07Z

Då ska du använda outer joins.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/180302-kombinera-två-recordset
