---
title: "DISTINCT accepteras ej"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/87263-distinct-accepteras-ej"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Skarre"
published: "2003-09-30T06:26:10.000Z"
updated: "2003-10-02T19:35:15.000Z"
replies: 10
views: 328
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/87263-distinct-accepteras-ej"
---

# DISTINCT accepteras ej

## #1 — Skarre, 2003-09-30T06:26Z

När jag kör nedanstående fråga får jag ut dubletter och när jag försöker motverka detta genom att lägga till DISTINCT säger servern följande:

> Microsoft\]\[ODBC SQL Server Driver\]\[SQL Server\]The text, ntext, or image data type cannot be selected as DISTINCT.

```
SELECT m.*, c.title category, t.[date], t.startTime 
FROM tblEventTimes t 
INNER JOIN tblEventMain m ON eventRef = m.id 
INNER JOIN tblEventCategories c ON m.categoryRef = c.id 
WHERE eventRef = m.id AND datediff(dd, getdate(), date) >= 0 
AND m.categoryRef <> 25 
ORDER BY t.[date], t.startTime
```

Tack på förhand!

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

## #2 — @nders, 2003-09-30T06:40Z

Felmeddelandet torde vara självklart??? 

Du kan inte ha med fält av typen text, ntext eller image i SELECT DISTINCT.

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

## #3 — Skarre, 2003-09-30T07:13Z

Jo, jag förstår engelska. Jag hade väl hoppats på att någon kunde hjälpa mig att komma runt problemet.

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

## #4 — Skarre, 2003-09-30T07:43Z

Nu har jag suttit i en och en halv timme och ger upp. Jag vore extremt tacksam om någon kunde förklara hur jag ska göra för att få önskat resultat, d.v.s. mitt nuvarande resultat utan dubletter från tblEventMain. Så här ser databasen ut: ![](http://member.webforum.nu/1826/db.gif)

Vad jag vill ha ut är en lista över evenemang som börjar i dag eller senare, sorterad efter evenemangets första datum. Jag vill egentligen även ha samtliga datum för varje evenemang, men i värsta fall får jag göra en extra fråga för att få ut dessa.

Tack på förhand!

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

## #5 — aasah, 2003-09-30T21:17Z

Låt bli att ta ut synopsis från tblEventMain. Det är ju bara den som har strulande typ. Så byt ut m.\* mot en uppräkning av alla andra kolumner som du vill få ut.

Om synopsis är viktigt så är det bättre om du plockar ut det för sig, det kommer ju inte att förändras för olika föreställningar. Så ta ut föreställningar för alla event enl ovan och plocka sedan ut id, title och synopsis, tex, i en egen tabell. Då visas synopsis bara en gång/event.

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

## #6 — Skarre, 2003-09-30T22:36Z

Tack för det aasah, jag testar det.

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

## #7 — Skarre, 2003-10-01T08:04Z

Efter att ha försökt i ett par timmar har jag fortfarande inte lyckats få önskat resultat, så jag skulle verkligen uppskatta lite hjälp.

Frågan med DISTINCT fungerar som väntat om jag exkluderar ntext-fältet, men jag får fortfarande dubletter. Det beror väl säkert på att ett evenemang ibland har flera poster med samma datum men olika tider i "tblEventTimes".

Så här ser frågan ut just nu:

```
SELECT DISTINCT m.id, m.title, m.arrangedBy, m.location, m.price, m.tickets, m.weblink, c.title AS category, t.[date], t.startTime
FROM tblEventMain m
INNER JOIN tblEventTimes t ON m.id = t.eventRef
INNER JOIN tblEventCategories c ON m.categoryRef = c.id
WHERE datediff(dd, GETDATE(), t.[date]) >= 0
AND m.categoryRef <> 25
ORDER BY t.[date], t.startTime
```

Jag vill alltså ha en lista över alla evenemang som börjar i dag eller senare, och denna lista ska sorteras efter dess tidigaste datum (i tblEventTimes). Jag ska fundera vidare, men om någon har några tips så uppskattas det.

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

## #8 — Engine^, 2003-10-01T09:19Z

Det kanske går bättre om du använder dig av GROUP BY istället för DISTINCT

```
SELECT m.id, m.title, m.arrangedBy, m.location, m.price, m.tickets, m.weblink, c.title, t.[date], t.startTime
FROM tblEventMain m
INNER JOIN tblEventTimes t ON m.id = t.eventRef
INNER JOIN tblEventCategories c ON m.categoryRef = c.id
WHERE datediff(dd, GETDATE(), t.[date]) >= 0 AND m.categoryRef <> 25
GROUP BY m.id, m.title, m.arrangedBy, m.location, m.price, m.tickets, m.weblink, c.title, t.[date], t.startTime
ORDER BY t.[date], t.startTime
```

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

## #9 — Skarre, 2003-10-02T13:01Z

GROUP BY fungerar dessvärre inte heller. I och med att jag har fortfarande har med t.\[date\] och t.startTime blir det dubletter. Om jag inte väljer dessa två kolumner så fungerar GROUP BY utmärkt, men jag måste ju som sagt ha med dessa någonstans för att kunna sortera efter tidigaste datum.

Vad tror du Engine^, finns det en lösning? Jag funderar annars på att försöka lösa det med en flerdimensionell matris, men det känns som om det kommer att ta lite tid så jag skulle helst slippa. :)

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

## #10 — Engine^, 2003-10-02T15:30Z

Lösning... nja det låter som om du inte designat tabellerna efter hur du vill visa datan. Det känns ivarjefall som att problemet ligger i designen.

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

## #11 — Skarre, 2003-10-02T19:35Z

Nu låter det som om jag skyller ifrån mig, men det är inte jag som gjort webbplatsen från början. :) Hursomhelst så får jag tacka för hjälpen.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/87263-distinct-accepteras-ej
