salve,
Giovanni_3478 wrote:
id deve essere solo proiettato, il suo valore non deve essere cambiato
Select
CREATE TABLE [dbo].[Test AspNet](
[id] [int] IDENTITY(1,1) NOT NULL,
[giorno della settimana] [nvarchar](350)
Insert
Insert into [Test AspNet] ([giorno della settimana]) values(N'Lunedì') Insert into [Test AspNet] ([giorno della settimana])
values(N'Martedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Mercoledì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Giovedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Venerdì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Sabato') Insert into [Test AspNet] ([giorno della settimana]) values(N'Domenica')
non ho ancora ben compreso l'architettura..
con questo intendo che la tabella [dbo].[Test AspNet] possa quindi contenere n righe e non solo le 7 dei giorni che hai indicato.. diversamente ti basta ovviamente ordinare per [dbo].[Test AspNet].[Id] visto che tu li hai gia' ordinati come ti si conviene..
partendo quindi dal "mio presupposto", che cioe' possano esserci n righe e che quindi non necessariamente id=1 sia pari a lunedi, puoi pero' tranquillamente utilizzare una tabella temporanea da mettere in join con la tua tabella [dbo].[Test AspNet] e proiettarne il risultato con l'ordinamento desiderato... questo ti permette anche eventualmente di modificare l'indicazione del primo giorno della settimana, che potrebbe ad esempio essere "domenica" invece di "lunedi"..
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE [dbo].[Test AspNet](
[id] [int] IDENTITY(1,1) NOT NULL,
[giorno della settimana] [nvarchar](350)
);
GO
Insert into [Test AspNet] ([giorno della settimana]) values(N'Venerdì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Sabato') Insert into [Test AspNet] ([giorno della settimana]) values(N'Domenica') Insert into [Test AspNet] ([giorno della settimana]) values(N'Lunedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Martedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Mercoledì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Giovedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Venerdì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Sabato') Insert into [Test AspNet] ([giorno della settimana]) values(N'Domenica') Insert into [Test AspNet] ([giorno della settimana]) values(N'Lunedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Martedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Mercoledì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Giovedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Venerdì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Sabato') Insert into [Test AspNet] ([giorno della settimana]) values(N'Domenica') Insert into [Test AspNet] ([giorno della settimana]) values(N'Lunedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Martedì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Mercoledì') Insert into [Test AspNet] ([giorno della settimana]) values(N'Giovedì')
GO
PRINT 'tabella di appoggio per la definizione dell''ordinale del giorno della settimana';
DECLARE @t table (
[id] [int],
[giorno della settimana] [nvarchar](350)
);
Insert into @t values(1, N'Lunedì')
Insert into @t values(2, N'Martedì')
Insert into @t values(3, N'Mercoledì')
Insert into @t values(4, N'Giovedì')
Insert into @t values(5, N'Venerdì')
Insert into @t values(6, N'Sabato')
Insert into @t values(7, N'Domenica')
SELECT a.[id], a.[giorno della settimana]
FROM [dbo].[Test AspNet] a
JOIN @t t
ON t.[giorno della settimana] = a.[giorno della settimana] ORDER BY t.[id];
GO
DROP TABLE [dbo].[Test AspNet];
--<--------
tabella di appoggio per la definizione dell'ordinale del giorno della settimana
id giorno della settimana
---------
------------------------
4 Lunedì
11 Lunedì
18 Lunedì
5 Martedì
12 Martedì
19 Martedì
6 Mercoledì
13 Mercoledì
20 Mercoledì
7 Giovedì
14 Giovedì
21 Giovedì
1 Venerdì
8 Venerdì
15 Venerdì
2 Sabato
9 Sabato
16 Sabato
3 Domenica
10 Domenica
17 Domenica
saluti