---
title: "En liten klurig SQL sak, tycker jag..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/152831-en-liten-klurig-sql-sak-tycker-jag"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "onzo"
published: "2006-10-21T20:02:48.000Z"
updated: "2006-10-22T18:34:59.000Z"
replies: 4
views: 619
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/152831-en-liten-klurig-sql-sak-tycker-jag"
---

# En liten klurig SQL sak, tycker jag...

## #1 — onzo, 2006-10-21T20:02Z

Jag har en tabell som heter Restaurang och som bland annat innehåller detta:

RBokningsID (Interger)
RRestaurang (VarChar (20))
RDatum (Date)

Jag har dessutom en tabell som heter Reservationer och som bland annat innehåller

ReBokningsID (Interger)
ReBord (Interger)
ReBokad(VarChar(1))

Jag skulle nu vilja, med hjälp av en SQL-sats, kunna se hur många lediga platser det finns vid en viss kväll, ex 2006-10-21 för var och en av restaurangerna (det finns två stycken). Båda restaurangerna har 50 platser så det som skall skrivas ut är alltså Restaurangnamn, Datum samt 50-bokningar för restaurangen den kvällen, för båda restaurangerna. Är det inga bokningar så skall alltså 50  skrivas ut.

Jag får inte till detta. Förmodar att det måste vara något med underfrågor och sånt har jag aldrig jobbat med så jag vet inte alls hur man skall göra.

Jag vet inte om det är till någon hjälp men jag kör MySQL 5.0 och EMS SQL Manager för MySQL.

Vore tacksam för ett och annat tips.

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

## #2 — emission, 2006-10-21T21:47Z

Är inte riktigt med på vad tabellen Reservationer tillför så...

SELECT RRestaurang, RDatum, 50-count(\*) FROM Restaurang 
GROUP BY RRestaurang,RDatum

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

## #3 — onzo, 2006-10-21T22:18Z

För det första, det skall vara "Bord" och inte 50 platser som jag skrev.

ReBokad innehåller ett J om bordet är bokat.
Vad jag skulle vilja ha fram är alltså hur många lediga bord det finns en viss dag.

Exempel
Restaurang1 45  (50 - räkna alla rebokad som är J)
Restaurang2 50  (50 - räkna alla rebokad som är J)

Inser allt mer och mer att jag nog inte har världens smartaste uppbyggnad av tabellerna, men det är försent att ändra det nu misstänker jag (mycket jobb är gjort redan).

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

## #4 — emission, 2006-10-21T23:52Z

SELECT r.RRestaurang, r.RDatum, 50-count(r2.ReBokningsID) FROM Restaurang r
LEFT OUTER JOIN Reservationer r2 ON r.BokningsID=r2.ReBokningsID AND r2.ReBokad='J' 
GROUP BY r.RRestaurang,r.RDatum

> Inser allt mer och mer att jag nog inte har världens smartaste uppbyggnad av tabellerna, men det är försent att ändra det nu misstänker jag (mycket jobb är gjort redan).

Om du tycker att uppbyggnaden är fel så bör du byta snarast. Feldesignade databaser får man äta upp i det långa loppet.

BTW. Det stavas Integer.. ;)

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

## #5 — onzo, 2006-10-22T18:34Z

Det funkade grymt bra.....

Stort tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/152831-en-liten-klurig-sql-sak-tycker-jag
