---
title: "SQL-fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/55491-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Addeladde"
published: "2002-10-09T09:08:18.000Z"
updated: "2002-10-09T12:08:04.000Z"
replies: 3
views: 205
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/55491-sql-fråga"
---

# SQL-fråga

## #1 — Addeladde, 2002-10-09T09:08Z

Hej

Jag får inte till min SQL-fråga. Jag har två tabeller.
Tabell 1 heter sidor och tabell 2 heter meny.

Jag vill skriva en SQL fråga som tar fram data från meny tabellen beroende på om sidan från tabellen sidor stämmer med vissa argument.

**SQL-fråga beskrivet i ord:** 
Ifall meny_sida_id = 0 behöver inga kriterier stämma med sidor tabellen.
Om om sida_datum_start och sida datum_slut inte har varit, paserat eller ska passera Eller ifall publicera = 0. sida_visa får inte vara 2 i något av alternativen.

Det här är koden jag har fått till men med den så radas det upp flera av smma alternativ om meny_sida_id = 0

```
sqlString = "SELECT meny_sida_id, meny_lank, meny_namn, sida_datum_start, sida_datum_slut, sida_visa, sida_publicering " &_
  "FROM meny, sidor " &_
  "WHERE meny_sida_id = sida_id " &_
  " Or meny_sida_id = "&nolla&" " &_
  "ORDER BY meny_namn "

SET menyRS = Con.Execute( sqlString )

WHILE NOT menyRS.EOF 
	
	
    IF menyRS("sida_datum_start") < date AND(menyRS("sida_datum_slut") > date) OR(menyRS("sida_publicering") = "1") OR(menyRS("meny_sida_id") = "0") THEN
	  IF menyRS( "sida_visa") <> 2 THEN
	    response.write "<span class=""meny"">>>&nbsp;"&menyRS("meny_namn")&" </span><br>"
	  END IF
	END IF

	
menyRS.MoveNext
WEND
```

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

## #2 — Addeladde, 2002-10-09T09:49Z

Annat kodförsök

\[kod\]
sqlString = "SELECT meny_lank, meny_namn " &\_
  "FROM meny, sidor " &\_
  "WHERE meny_sida_id = sida_id  " &\_
  \<-- detta är en egen --\>
  "AND sida_datum_start \< #"&date&"# " &\_
  "AND sida_datum_slut \> #"&date&"# " &\_
  "AND sida_visa =1 "&\_ 
  "OR sida_publicering =0 "&\_
  \<--  här slutar den egna frågan --\>

  \<--- den här är antigen för "meny_sida_id = sida_id  " --\>
  "OR meny_sida_id =0 "&\_

  " ORDER BY meny_namn "
SET menyRS = Con.Execute( sqlString )

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

## #3 — LarsG, 2002-10-09T11:41Z

Gör en union 

```
sqlString = "SELECT meny_sida_id, meny_lank, meny_namn," &_ 
"sida_datum_start, sida_datum_slut, sida_visa, sida_publicering " &_
  "FROM meny, sidor " &_
  "WHERE meny_sida_id = sida_id " &_
"union " & _
"SELECT meny_sida_id, meny_lank, meny_namn, " &_ 
"null,null,null,null " &_
  "FROM meny " &_
  "WHERE meny_sida_id = "&nolla&" " &_
  "ORDER BY meny_namn "
```

(Att skriva null direkt i select-listan enligt ovanstående är inte korrekt sql men de flesta tillåter det. Det skall egentligen vara 
cast(null as date) men den konstruktionen är det färre som tillåter.)

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

## #4 — Addeladde, 2002-10-09T12:08Z

Tack lars nu har du sparat mycket tid åt mig. Nästan så jag vill skicka min adress så du kan fakturera :bire

Det fungera nu precis som det ska! Här är koden:

```
sqlString = "SELECT meny_sida_id, meny_lank, meny_namn," &_ 
"sida_datum_start, sida_datum_slut, sida_visa, sida_publicering " &_
  "FROM meny, sidor " &_
  "WHERE meny_sida_id = sida_id " &_
  "AND sida_visa =1 " &_
"union " & _
"SELECT meny_sida_id, meny_lank, meny_namn, " &_ 
"null,null,null,null " &_
  "FROM meny " &_
  "WHERE meny_sida_id =0 " &_
  "ORDER BY meny_namn "

SET menyRS = Con.Execute( sqlString )

WHILE NOT menyRS.EOF 

    IF menyRS("sida_datum_start") <= date AND(menyRS("sida_datum_slut") >= date) OR(menyRS("sida_publicering") = "1") OR(menyRS("meny_sida_id") = "0") THEN
	    response.write "<span class=""meny"">>>&nbsp;"&menyRS("meny_namn")&" </span><br>"
	END IF

	
menyRS.MoveNext
WEND
```

Nu är min fråga går det att få in den här raden i SQL-frågan och om det gör det, är det bättre?

```
    IF menyRS("sida_datum_start") <= date AND(menyRS("sida_datum_slut") >= date) OR(menyRS("sida_publicering") = "1") OR(menyRS("meny_sida_id") = "0") THEN
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/55491-sql-fråga
