---
title: "Använda where på variabeln AntMatcher?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/99531-använda-where-på-variabeln-antmatcher"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Ralle"
published: "2004-03-15T13:38:08.000Z"
updated: "2004-03-17T16:24:56.000Z"
replies: 13
views: 268
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/99531-använda-where-på-variabeln-antmatcher"
---

# Använda where på variabeln AntMatcher?

## #1 — Ralle, 2004-03-15T13:38Z

```
SELECT Nr, Fornamn, Efternamn, Position, AntMatcher 
FROM (SELECT Nr, Fornamn, Efternamn, Position, Sum(Select Count(Match) FROM Matcher
WHERE (Sasong1='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare=SSK_trupp.Id)) AS AntMatcherFROM SSK_trupp WHERE Sasong='" & Sasong3 & "')
ORDER BY AntMatcher DESC"
```

Jag skulle vilja kunna välja ut dom spelare som spelat t.ex. 1 match.

Har provat med where på alla upptänkliga sätt, utan att lyckas. Problemet är att AntMatcher inte är en kolumn i tabellen, och det verkar den inte kunna hantera.

SQL'en är mycket större, men av hänsyn till läsbarhet, så har jag skalat bort det mesta.

Hoppas på hjälp från någon vänlig här?

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

## #2 — LarsG, 2004-03-15T13:48Z

```
select Nr, Fornamn, Efternamn, Position,AntMatcher from
(SELECT Nr, Fornamn, Efternamn, Position, (Select Count(Match) FROM Matcher
WHERE (Sasong1='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare=SSK_trupp.Id)) AS AntMatcher
FROM SSK_trupp 
WHERE Sasong='" & Sasong3 & "')
and antMatcher = 1
ORDER BY AntMatcher DESC"
```

Varför hade du sum med?

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

## #3 — Ralle, 2004-03-15T14:53Z

> **LarsG skrev:**
>
> ```
> select Nr, Fornamn, Efternamn, Position,AntMatcher from
> (SELECT Nr, Fornamn, Efternamn, Position, (Select Count(Match) FROM Matcher
> WHERE (Sasong1='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare=SSK_trupp.Id)) AS AntMatcher
> FROM SSK_trupp 
> WHERE Sasong='" & Sasong3 & "')
> and antMatcher = 1
> ORDER BY AntMatcher DESC"
> ```
>
> 
> 
> Varför hade du sum med?

Jag fick hjälp av någon med det.

Ditt förslag fungerar inte, jag får syntax-fel i from-instruktionen.

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

## #4 — LarsG, 2004-03-15T15:00Z

Hur ser din fråga ut efter det att alla substitutioner är gjorda?

Vilken databashanterare använder du?

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

## #5 — Ralle, 2004-03-15T16:15Z

> **LarsG skrev:**
>
> Hur ser din fråga ut efter det att alla substitutioner är gjorda?
> 
> Vilken databashanterare använder du?

Jag vet inte vad du menar med substitutioner, om du inte menar hela frågan?

Jag använder Access.

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

## #6 — LarsG, 2004-03-15T16:19Z

Det jag vill är att se frågan så som den ser ut när den skickas till Access.

Så om du gör

```
sql = "select ... "
response.write "SQL:" & sql
response.end
```

så vill jag se den rad där du konstruerar frågan och resultatet av response.write

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

## #7 — Ralle, 2004-03-15T16:46Z

> **LarsG skrev:**
>
> Det jag vill är att se frågan så som den ser ut när den skickas till Access.
> 
> Så om du gör
> 
>
>
> ```
> sql = "select ... "
> response.write "SQL:" & sql
> response.end
> ```
>
> 
> 
> så vill jag se den rad där du konstruerar frågan och resultatet av response.write

Om jag verkar lite frågande så beror det på att hela frågan är ungefär 1000 tecken lång. men det är klart att jag kan lägga in den, om du vill.

Om jag testkör den på sidan så får jag felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Frågan är för komplex.

Jag har hittills testat den i Access, då tilldelas alla spelarna en etta, oavsett om dom spelat eller inte.

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

## #8 — LarsG, 2004-03-15T16:57Z

Jo, det är lika bra att ta allt. Det vore även bra med en beskrivning av de tabeller som du använder.

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

## #9 — Ralle, 2004-03-15T17:34Z

> **LarsG skrev:**
>
> Jo, det är lika bra att ta allt. Det vore även bra med en beskrivning av de tabeller som du använder.

```
strSQL3="SELECT Nr, Fornamn, Efternamn, Position, AntMatcher, Mal, Assist, Poang, Utvisning, Utlånad
 FROM (SELECT Nr, Fornamn, Efternamn, Position, Utlånad, (Select Count(Match) FROM Matcher
 WHERE (Sasong1='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare=SSK_trupp.Id)) AS AntMatcher, 
(Select Sum(Mål) FROM Skytteliga_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare1=SSK_trupp.Id)) AS Mal, 
(Select Sum(Assist1+Assist2) FROM Skytteliga_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare1=SSK_trupp.Id)) AS Assist, 
(Select Sum(Mål+Assist1+Assist2) FROM Skytteliga_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare1=SSK_trupp.Id)) AS Poang, 
(Select Sum(Utvisningstid) FROM Utvisning_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Match=" & Matchnr1 & " AND Spelare1=SSK_trupp.Id)) AS Utvisning 
FROM SSK_trupp WHERE Sasong='" & Sasong3 & "') [B]WHERE AntMatcher = 1[/B] ORDER BY AntMatcher DESC, Mal+Assist DESC, Mal DESC, Assist DESC"
```

Det fetstilta är det jag försökt testa.

Tabell:
SSK_trupp:Id, Nr, Fornamn, Efternamn, Position, Utlånad, Sasong.

Matcher:Id, Match, Spelare, Sasong1.
Fältet Match innehåller matchnummer från tabell Elitserien.

Skytteliga_Elitserien:Id, Sasong2, Match, Spelare, Period, Tid, Mål, Assist1, Assist2.

Utvisning_Elitserien:Id, Match, Sasong2, Spelare, Period, Tid, Utvisning, Utvisningstid.

Så nu tror jag att jag fått med allt.

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

## #10 — LarsG, 2004-03-15T21:02Z

Om du får felet query to complex så är du nog illa ute.

Du kan  ju testa

```
SELECT Nr, Fornamn, Efternamn, Position, Utlånad, 
 (Select Count(Match) FROM Matcher
  WHERE (Sasong1='" & Sasong3 & "' 
    AND Match=" & Matchnr1 & " 
    AND Spelare=SSK_trupp.Id)) AS AntMatcher, 
 (Select Sum(Mål) FROM Skytteliga_Elitserien 
  WHERE (Sasong2='" & Sasong3 & "' 
    AND Match=" & Matchnr1 & " 
    AND Spelare1=SSK_trupp.Id)) AS Mal, 
 (Select Sum(Assist1+Assist2) 
    FROM Skytteliga_Elitserien 
   WHERE (Sasong2='" & Sasong3 & "' 
    AND Match=" & Matchnr1 & " 
    AND Spelare1=SSK_trupp.Id)) AS Assist, 
 (Select Sum(Mål+Assist1+Assist2) 
   FROM Skytteliga_Elitserien 
  WHERE (Sasong2='" & Sasong3 & "' 
    AND Match=" & Matchnr1 & " 
    AND Spelare1=SSK_trupp.Id)) AS Poang, 
 (Select Sum(Utvisningstid) 
    FROM Utvisning_Elitserien 
   WHERE (Sasong2='" & Sasong3 & "' 
     AND Match=" & Matchnr1 & " 
     AND Spelare1=SSK_trupp.Id)) AS Utvisning 
  FROM SSK_trupp 
 WHERE Sasong='" & Sasong3 & "') 
  and 1 = (Select Count(Match) FROM Matcher
  WHERE (Sasong1='" & Sasong3 & "' 
    AND Match=" & Matchnr1 & " 
    AND Spelare=SSK_trupp.Id))
ORDER BY AntMatcher DESC, Mal+Assist DESC, Mal DESC, Assist DESC"
```

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

## #11 — Ralle, 2004-03-15T22:26Z

Det här felmeddelandet får jag nu:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel i FROM-instruktion.

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

## #12 — Engine^, 2004-03-16T05:30Z

Kan det vara providern i det här fallet, som inte klarar av det av någon konstig anledning?

Frågan i sig är ju inte speciellt knivig - sex stycken subqueries. Felmeddelandet tyder på att du använder dig av ASP. Byt till OleDB-provider:

```
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(strPath2DB)
```

Annars kanske du kan få ett tydligare felmeddelande om du klistrar in frågan direkt i Access.

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

## #13 — Ralle, 2004-03-16T20:38Z

Det fungerar i Access.

Så här koden ut till databasen:

```
Set objConnect = Server.CreateObject("ADODB.Connection")
objConnect.ConnectionString="driver={Microsoft Access Driver (*.mdb)};" &"dbq=" &Server.MapPath("../databas/Ishockey.mdb")
objConnect.Open
```

Så här ser den ut till själva frågan:

```
Set Poangliga=objConnect.Execute(strSQL3)
```

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

## #14 — Ralle, 2004-03-17T16:24Z

> **Engine^ skrev:**
>
> Kan det vara providern i det här fallet, som inte klarar av det av någon konstig anledning?
> 
> Frågan i sig är ju inte speciellt knivig - sex stycken subqueries. Felmeddelandet tyder på att du använder dig av ASP. Byt till OleDB-provider:
>
> ```
> strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(strPath2DB)
> ```
>
> Annars kanske du kan få ett tydligare felmeddelande om du klistrar in frågan direkt i Access.

Jag hittade felet. Det var en höger ")" för litet.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/99531-använda-where-på-variabeln-antmatcher
