---
title: "Update med olika villkor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/178384-update-med-olika-villkor"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "devotion"
published: "2009-05-03T16:51:45.000Z"
updated: "2009-05-04T18:34:39.000Z"
replies: 8
views: 635
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/178384-update-med-olika-villkor"
---

# Update med olika villkor

## #1 — devotion, 2009-05-03T16:51Z

Hej :)  

Jag har en update enligt följande:

```
UPDATE tblTask
       SET CustomT2 = [b]c.[Category][/b], Modified = GETDATE()
  
FROM tblTask t
INNER
	JOIN tblCustomer c
		ON t.CustomerNr = c.[Nr]
INNER 
	JOIN tblUsers u
		ON t.UserSign = u.[Sign]
INNER
	JOIN tblWorkGroups wg
		ON u.GroupId = wg.[Id]
WHERE DATEDIFF(d, t.planstartdate, GETDATE()) = 1
AND wg.[Id] <> 10002
```

Dvs uppdatera alla poster där datumet är gårdagens och där tblWorkGroup.Id INTE ÄR 10002

Jag vill lägga till att uppdatera även de poster där tblWorkGroup.Id ÄR 10002 enligt:

```
UPDATE tblTask
       SET CustomT2 = [b]wg.[Name][/b], Modified = GETDATE()
  
FROM tblTask t
INNER
	JOIN tblCustomer c
		ON t.CustomerNr = c.[Nr]
INNER 
	JOIN tblUsers u
		ON t.UserSign = u.[Sign]
INNER
	JOIN tblWorkGroups wg
		ON u.GroupId = wg.[Id]
WHERE DATEDIFF(d, t.planstartdate, GETDATE()) = 1
AND wg.[Id] = 10002
```

Kan man göra detta i samma update? :)  

Mvh
Henrik

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

## #2 — drew, 2009-05-03T17:11Z

Om det ska vara datum gårdagen på dom som är  grupp 10002 så räcker det med att ta bord AND wg.\[Id\] \<\> 10002
Annars ändrar du till OR wg.\[Id\] = 10002

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

## #3 — Peter S, 2009-05-03T19:48Z

```
UPDATE tblTask
       SET CustomT2 = case when wg.id = 10002 then wg.[Name] else c.category end, Modified = GETDATE()
  
FROM tblTask t
INNER
	JOIN tblCustomer c
		ON t.CustomerNr = c.[Nr]
INNER 
	JOIN tblUsers u
		ON t.UserSign = u.[Sign]
INNER
	JOIN tblWorkGroups wg
		ON u.GroupId = wg.[Id]
WHERE DATEDIFF(d, t.planstartdate, GETDATE()) = 1
```

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

## #4 — devotion, 2009-05-04T16:29Z

Hepp!!

Ser ju fint ut!

 :)   

Mvh
Henrik

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

## #5 — devotion, 2009-05-04T16:39Z

> **[Peter S skrev:](https://www.webforum.nu/p/1466675)**
>
> ```
> UPDATE tblTask
>        SET CustomT2 = case when wg.id = 10002 then wg.[Name] else c.category end, Modified = GETDATE()
>   
> FROM tblTask t
> INNER
> 	JOIN tblCustomer c
> 		ON t.CustomerNr = c.[Nr]
> INNER 
> 	JOIN tblUsers u
> 		ON t.UserSign = u.[Sign]
> INNER
> 	JOIN tblWorkGroups wg
> 		ON u.GroupId = wg.[Id]
> WHERE DATEDIFF(d, t.planstartdate, GETDATE()) = 1
> ```

Kan man använda case till flera villkor?

Typ:

```
SET CustomT2 = case when wg.id IN (10002, 10004) then wg.[Name] case when wg.id IN (20001, 20002 then c.category end, Modified = GETDATE()
```

Mvh
Henrik

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

## #6 — Peter S, 2009-05-04T17:13Z

Üngefär

```
UPDATE tblTask
       SET CustomT2 = case when wg.id in (10002,10004) then wg.[Name] when wg.id in (20001,20002) then wg.name2 else c.category end, Modified = GETDATE()
  
FROM tblTask t
INNER
	JOIN tblCustomer c
		ON t.CustomerNr = c.[Nr]
INNER 
	JOIN tblUsers u
		ON t.UserSign = u.[Sign]
INNER
	JOIN tblWorkGroups wg
		ON u.GroupId = wg.[Id]
WHERE DATEDIFF(d, t.planstartdate, GETDATE()) = 1
```

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

## #7 — devotion, 2009-05-04T17:31Z

> **[Peter S skrev:](https://www.webforum.nu/p/1466796)**
>
> Üngefär
>
>
> ```
> UPDATE tblTask
>        SET CustomT2 = case when wg.id in (10002,10004) then wg.[Name] when wg.id in (20001,20002) then wg.name2 else c.category end, Modified = GETDATE()
>   
> FROM tblTask t
> INNER
> 	JOIN tblCustomer c
> 		ON t.CustomerNr = c.[Nr]
> INNER 
> 	JOIN tblUsers u
> 		ON t.UserSign = u.[Sign]
> INNER
> 	JOIN tblWorkGroups wg
> 		ON u.GroupId = wg.[Id]
> WHERE DATEDIFF(d, t.planstartdate, GETDATE()) = 1
> ```

Aha!

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

## #8 — devotion, 2009-05-04T18:24Z

Hmmm

Hur gör jag följande:

```
UPDATE tblTask
       SET CustomT2 = case when wg.id in (77711,77715,77717,77720,77711) then c.category when wg.id in (77719) then wg.Name else  'GÖR-INGENTING' end, Modified = GETDATE()
```

Mvh
henrik

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

## #9 — Peter S, 2009-05-04T18:34Z

```
UPDATE tblTask
       SET CustomT2 = case when wg.id in (77711,77715,77717,77720,77711) then c.category when wg.id in (77719) then wg.Name else CustomT2 end, Modified = GETDATE()
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/178384-update-med-olika-villkor
