webForumDet fria alternativet

Ännu en distinct

ASP

4 svar · 244 visningar · startad av i-or

Medlem sedan nov. 2001294 inlägg
Frågan#1

Jag har sökt och försökt och försökt men kom inte i rätt i ett virrvarr av GROUP BY osv.

Min SQL-sats ser ut så här:

Show = "SELECT DISTINCT DatePart('ww', Dat, 2, 2), Year(Dat) FROM Diary ORDER BY Year(Dat) DESC, DatePart('ww', Dat, 2, 2) DESC"

Jag behöver även få med Month(Dat), men denna ska inte ingå i DISTINCT. Därför bör jag använda GROUP BY istället för DISTINCT men jag har aldrig fattat hur den fungerar riktigt så kan någon snäll själ skriva om min SQL-sats skulle jag vara väldigt tacksam.

Medlem sedan dec. 200012 464 inlägg
#2

Jag behöver även få med Month(Dat), men denna ska inte ingå i DISTINCT.

Det går inte ihop. Distinct gäller för alla kolumner.

Kan du visa lite data och vad du förväntar dig för resultat.

Medlem sedan nov. 2001294 inlägg
#3

Jag vet att DISTINCT gäller för alla kolumner, därför misstänker jag att jag istället ska använda GROUP BY.

SQL-satsen ska ge exakt samma resultat (alla unika veckonummer och år, tex v.42 år 2002) som den i mitt första inlägg, med den skillnaden att jag senare ska kunna komma åt även Month(Dat). Men någon påverkan i SQL-satsen ska den inte göra.

Medlem sedan dec. 1999707 inlägg
#4

Jag är inte säker på exakt hur du vill få ut datan men om jag har uppfattat det riktigt så har jag gjort en liknande procedure en gång i tiden:

SELECT
	YEAR(d_date_arrival_101) n_year,
	DATEPART(wk, d_date_arrival_101) n_week,
	COUNT(n_id_101) n_count
FROM 
	pending_results_101 
WHERE
	s_customer_no_1_101 = @sCustomerId
GROUP BY 		
	YEAR(d_date_arrival_101),
	DATEPART(wk, d_date_arrival_101)
ORDER BY
	n_year,
	n_week

Hoppas det är något du kan få nytta av.

Medlem sedan nov. 2001294 inlägg
#5

Jo, jag har försökt med något liknande, men med denna SQL-sats:

Show = "SELECT DatePart('ww', Dat, 2, 2), Year(Dat), Month(Dat) FROM Diary GROUP BY DatePart('ww', Dat, 2, 2), Year(Dat) ORDER BY Year(Dat) DESC, DatePart('ww', Dat, 2, 2) DESC

fick jag detta felmeddelande:

"Microsoft JET Database Engine fel '80040e21'
Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'Month(Dat)'."

EDIT: Nu fick jag det att funka, med t ex min(Month(Dat)) funkade det finfint. Tack alla för hjälpen!

368 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
232 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
226 ms — ändringar (db)