---
title: "SQL. Fråga.... FROM [table] WHERE ..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/2399320-sql-fråga-from-table-where"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "angelica"
published: "2016-04-14T14:04:25.000Z"
updated: "2016-04-16T07:34:57.000Z"
replies: 3
views: 224
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/2399320-sql-fråga-from-table-where"
---

# SQL. Fråga.... FROM [table] WHERE ...

## #1 — angelica, 2016-04-14T14:04Z

SQL = "SELECT l.intID, l.strName, l.intMapIndex, l.strText " \_
    & ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID)" \_
    & ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) " \_
    & " FROM \[location\] l WHERE " \_
    **& ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) \> 0 " \_**
    & "  AND l.bolView = TRUE ORDER BY l.strName"

\*\*\*
Jag har problem med den markerade raden. Kan man inte räkna poster på det viset och ta med de som är mer än 0?

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

## #2 — angelica, 2016-04-14T14:50Z

Om man tar bort kommatecknet i början av raden så fungerar det! :-)

SQL = "SELECT l.intID, l.strName, l.intMapIndex, l.strText " \_
    & ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID)" \_
    & ", (SELECT COUNT(\*) as tmpCounter FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) " \_
    & " FROM \[location\] l WHERE " \_
    **& " tmpCounter \> 0 " \_**
    & "  AND l.bolView = TRUE ORDER BY l.strName"

Denna varianten känner jag skulle vara lite snyggare.... men det fungerar inte.

> Microsoft JET Database Engine error '80040e10'
>   No value given for one or more required parameters.
>   /vako_cms/admin/location/listan.asp, line 42

Men å andra sidan!! Denna gången kan jag leva med lite sunkig kod. Viktigare är att det fungerar!

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

## #3 — aasah, 2016-04-16T04:33Z

> **angelica skrev:**
>
> Om man tar bort kommatecknet i början av raden så fungerar det! :-)

Om du ändrade dina radbrytningar så att de inleds (inte avslutas) med SQL:s kodord skulle koden bli lättare att läsa, också för dig själv tror jag:

SQL = "SELECT l.intID, l.strName, l.intMapIndex, l.strText " \_
& ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID)" \_
& ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) " \_
& " FROM \[location\] l " \_
& "****WHERE**** (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) \> 0 " **\_**
& " AND l.bolView = TRUE ORDER BY l.strName"

Då ser du direkt varför den raden inte börjar med kommatecken.

> **angelica skrev:**
>
> SQL = "SELECT l.intID, l.strName, l.intMapIndex, l.strText " \_
> & ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID)" \_
> & ", (SELECT COUNT(\*) as tmpCounter FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) " \_
> & " FROM \[location\] l WHERE " \_
> & " tmpCounter \> 0 " \_
> & " AND l.bolView = TRUE ORDER BY l.strName"
>
> Denna varianten känner jag skulle vara lite snyggare.... men det fungerar inte.

Det beror på att tmpCounter inte finns i din yttersta fråga, bara i subuttrycket. Här har du en kolumn som heter tmpCounter:
SELECT COUNT(\*) as tmpCounter FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE

Men i den yttre frågan är denna kolumn namnlös:
(SELECT COUNT(\*) as tmpCounter FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) och kan inte refereras till senare.

Testa att skriva:
SQL = "SELECT l.intID, l.strName, l.intMapIndex, l.strText " \_
& ", (SELECT COUNT(\*) FROM \[artists\] a WHERE a.intLocationID = l.intID)" \_
& ", (SELECT COUNT(\*) as tmpCounter FROM \[artists\] a WHERE a.intLocationID = l.intID AND a.bolView = TRUE AND l.bolView = TRUE ) **as artistCounter**" \_
& " FROM \[location\] l " \_
& " WHERE **artistCounter \> 0** " \_
& " AND l.bolView = TRUE ORDER BY l.strName"

Om det inte funkar får du mellanlagra uttrycket för artistCounter i en temptabell och joina in den i din fråga. Då om inte förr funkar det.

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

## #4 — angelica, 2016-04-16T07:34Z

Ah!!
Knivigt, klurigt, lurigt!!
Tack för dina tips! Jag ska tänka på det!

Tack för räknaren där på slutet!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/2399320-sql-fråga-from-table-where
