---
title: "Distinct på datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/140230-distinct-på-datum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ecrost"
published: "2006-01-03T13:48:52.000Z"
updated: "2006-01-04T13:39:04.000Z"
replies: 7
views: 451
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/140230-distinct-på-datum"
---

# Distinct på datum

## #1 — ecrost, 2006-01-03T13:48Z

SQL-server
ASP-sida

Svårt att hitta någon lämplig Rubrik på denna... 
Har ett problem med en distinct-sats som jag inte får till riktigt. 
Satsen ser ut på följande nu.. 

SQLlevtur = "SELECT tur, sum(antalstopp) AS stopp, SUM(vikt) AS vikt, SUM(netto) AS netto1, SUM(tb) AS tb1, SUM(tb)/ SUM(netto)\* 100 AS tbpro 
FROM         leverans 
WHERE     (levdatum BETWEEN '20051001' AND '20051101') AND (netto \<\> 0) "&\_
GROUP BY tur 
ORDER BY tur "

Här behöver jag kompletera SQL-satsen med hur många gånger turen har gått under den aktuella datum-ramen.
Problemet är att varje tur kan förekomma 15 gånger på samma dag (pga att kundnummer finns med i tabellen) 

Man skulle vilja köra någon form av "select distinct/count tur by datum"

Resultatet bör se ut på följande

**Tur** \____\_ **antal turer/period** \____\_ **snittvärde/tur**
222 \________\_ 5 \_________________\_ 25 000
111 \________\_ 10 \________________\_ 30 000

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

## #2 — toha, 2006-01-03T15:03Z

Gör en CONVERT() på datumet för att inte ta hänsyn till timmar/minuter:

set dateformat ymd
select convert(datetime, convert(varchar, getdate(), 112))

Konverterar först till en varchar med datumet utan klockan, sedan en convert för att få det till datetime igen.

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

## #3 — ecrost, 2006-01-03T15:50Z

Hehe nu är jag helt borta. Jag förstår inte alls hur du menar :( 

Känns som att jag vill få fram en sak och du en annan ... 

såhär ser tabellen ut...typ 
Kundnr \_\_ Tur \__stopp\_ vikt____rader\_ summa___\_ datum
9423 \__\_ 42 \__\_ 1 \__\_ 22,1 \__\_ 5 \__\_ 179,66 \__\_ 20050103	
3434 \__\_ 42 \__\_ 1 \__\_ 23,4 \__\_ 9 \__\_ 980,66 \__\_ 20050103	

Just denna tur kan ha lämnat kajen 10 gånger under 10 veckor dvs 1 gång i veckan.
Värdet jag behöver få fram är hur många gånger tur 42 har lämnat kajen under perioden detta för att kunna göra att beräkningar. 
Rapporten bygger på ett snittvärde per tur hela tiden.  tex snittvärde/tur 10veckor snittvärde/tur senaste 5 veckorna.. På något sätt måste jag få fram hur många gånger turen lämnat kajen i sqlsatsen. 

Kollar vi på den första inlägget... 

Tur \____\_ antal turer/period \____\_ snittvärde/tur
222 \________\_ 5 \_________________\_ 25 000
111 \________\_ 10 \________________\_ 30 000

Resultatet jag har nu ser ut på följande sätt

Tur \____\_ antal turer/period \____\_ snittvärde/tur
222 \________\_ 1 \_________________\_ 125 000
111 \________\_ 1 \_________________\_ 300 000

Hoppas jag beskriver hyfsat iaf :)

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

## #4 — LarsG, 2006-01-03T16:49Z

Det är fortfarande oklart. Ge fler exempelrader och ett resultat som är baserat på dessa rader.

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

## #5 — ecrost, 2006-01-04T07:42Z

Skickar in med en execl fil.. lite lättare att skilja på kolumnerna då. 

Har även lagt in komentarer på "vad som ska göras" 
hoppas det blir lättare att förstå nu. 

Det jag vill är att få fram: Hur många gånger har turen lämnat kajen under den valda perioden. 

Hoppas jag lyckats förklara nu :)

Bilagor:

- [SQL-tur.xls](https://www.webforum.nu/a/9056.xls)

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

## #6 — toha, 2006-01-04T08:36Z

Ok, missförstod först då. Men är det något sånt här du är ute efter?

```
SELECT
	Tur,
	AVG(Stopp)	AS AvgStopp,
	COUNT(Tur)	AS AntalTurer,
	AVG(Vikt)	AS AvgVikt,
	AVG(Summa)	AS AvgSumma
FROM
	Leverans
WHERE
	datum BETWEEN '2006-01-01' AND '2006-01-30'
GROUP BY
	Tur
```

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

## #7 — ecrost, 2006-01-04T13:21Z

tur \\ stopp \\ antalturer \\ snitt vikt\\ snitt summa \\
140 \\ 	1 \\ 	45 \\ 	151,884888 \\ 	5444,244666

Perioden jag frågade på var 5 dagar. Så antal turer kan vara MAX 10 för/e-middag. Antal turer är värdet på antal stopp hos kunder som den gjort. Så man skulle behöva få till en sql-sats.. om det går som ser ut på följande

select tur, vikt, stopp, summa, \>\> count-distinct(tur) per dag \<\<
from leverans
where datum between '20051001' and '20051023' 

Går det?

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

## #8 — LarsG, 2006-01-04T13:39Z

Byt

```
count(tur)
```

mot

```
count(distinct levdatum)
```

Vad menar du med för/e-middag? Ser inte hur man kan få ut den distinktionen med de data du visat.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/140230-distinct-på-datum
