webForumDet fria alternativet

En kolumn ska bli rubrik åt resten?

Databaser & SQL

5 svar · 265 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Frågan#1

Hejsan,

Följande sql:

SELECT DISTINCT Avdelning, Enhet, Enamn, Fnamn 
FROM Avdelningar avd INNER JOIN Enheter enh 
ON avd.AvdID = enh.EnhID INNER JOIN komb kom 
ON kom.EnhID = enh.EnhID 
INNER JOIN Personal per 
ON kom.PerID = per.PerID 
GROUP BY Avdelning, Enhet, Enamn, Fnamn 
ORDER BY Avdelning

ger denna utskrift (ungefär)

avd1		enh1	enamn		fnamn	
avd1		enh1	enamn		fnamn
avd1		enh2	enamn		fnamn
avd2		enh3	enamn		fnamn
avd2		enh4	enamn		fnamn	
avd2		enh4	enamn		fnamn

Det jag inte kommer på är hur man, med SQL, får nåt som blir så här (alltså att avdelningskolumnen blir huvudrubrik åt resten?)

avd1
enh1	enamn		fnamn			
enh1	enamn		fnamn
enh2	enamn		fnamn
avd2
enh3	enamn		fnamn
enh4	enamn		fnamn	
enh4	enamn		fnamn

(Egentligen håller jag på med en Datagrid i ASP.NET, C#, så om nån vet hur man får in det där är det ju ännu bättre... men jag är lika nyfiken på hur SQL satsen skulle kunna se ut.. har funderat på subqueries o unions etc. men får inte till det.. om det inte går med SQL kan jag väl flytta logiken till C# iofs.. )

Medlem sedan juni 200032 967 inlägg
#2

Det där ska du lösa i C#-applikationen.

Mvh

Medlem sedan juni 2000504 inlägg
#3

Hej @nders.. okay, tack, bra.. då ska jag inte slösa bort mer tid på o fundera ut SQL satser :)

Medlem sedan juni 200032 967 inlägg
#4

Det du frågar efter har ju faktiskt bara med presentationen att göra, och då passar det bra att lösa problemet där man gör presentationen av datat. :)

mvh

Medlem sedan juni 2000504 inlägg
#5

hehe.. sant sant.. jag kanske inte alltid vill att det ska se ut just så.. då ska jag ju inte gå in i databasens sp o ändra.. ehm... vet inte vad jag tänkte på.. blev bara nyfiken på om jag missat nåt kul kommando i SQL o glömde bort om det var det bästa sättet :) men jag går in o ändrar i C# nu.. :) tackar.. kanske postar i ASP.NET längre fram då..

Medlem sedan juni 2000504 inlägg
#6

jag tänkte jag kunde posta hur jag löste det i C# om det nu kanske hjälper nån... :)

protected void repAvd_ItemDataBound(object sender, RepeaterItemEventArgs e)
		{
			if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
			{
				repEnheter = (Repeater)e.Item.FindControl("repEnh");
				if(repEnheter != null)
				{
					curAvdId = ((Label)e.Item.FindControl("lblCurAvdId")).Text.ToString().Trim();
					repEnheter.DataSource = dtc.CreateDataSourceListEnh(curAvdId);
					repEnheter.DataBind();
				}
			}
		}
258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)