---
title: "Enkel schemaläggning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/192577-enkel-schemaläggning"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Obbelix"
published: "2015-01-23T14:49:47.000Z"
updated: "2015-01-24T21:16:46.000Z"
replies: 2
views: 1169
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/192577-enkel-schemaläggning"
---

# Enkel schemaläggning

## #1 — Obbelix, 2015-01-23T14:49Z

Hej,

Var ett tag sedan man höll på aktivt med SQL så kunskaperna har minskat med åren.
Ska göra en enkel schemaläggningsfunktion där man i ett gränssnitt väljer vilka veckodagar samt en tid. Kommer bli checkboxar för mån-sön samt en ruta för önskad tid.
Tänker mig sedan två tabeller i databasen (MySQL).

```
1. planner
 -id
 -namn
 -tid
2. planner_days
 -planner_id
 -dayOfWeek
```

Alltså ser tabellerna ut så här om en schemaläggning är inlagd mån,ons,fre kl 13:00

```
1. planner
 id    namn    tid
 1     test1   13:00:00

2. planner_days
 planner_id  dayOfWeek
 1           0
 1           2
 1           4
```

Alltså måndag = dag 0, söndag = dag 6

Nu skulle jag då vilja göra en SQL-fråga som tar fram nästkommande schemaläggning utifrån tiden NU.
Är ju inga konstigheter att kolla om dayOfWeek är större eller lika med weekday(NOW()), men problemet blir ju tiden om man kollar den på samma sätt.
Det funkar ju om man gör kollen 11:00, men gör man den 14:00 blir det ju inget svar. 
Sedan kommer man ju till krånglet om weekday är 6 (söndag) så ska den ju plocka nollan (måndag).

Någon som kan hjälpa mig på vägen?

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

## #2 — Peter S, 2015-01-24T12:50Z

```
select top 1 * 
from
(
    ( select top 1 *, 1 as priority from planner p inner join planner_days d on p.id = d.planner_id where (weekday(now()) = d.dayofweek and p.tid >= time()) or weekday(now()) < d.dayofweek order by d.dayofweek )
    union
    ( select top 1 *, 2 as priority from planner p inner join planner_days d on p.id = d.planner_id order by d.dayofweek )
) as x
order by x.priority
```

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

## #3 — Obbelix, 2015-01-24T21:16Z

Tackar!
Verkar funka precis som jag vill.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/192577-enkel-schemaläggning
