Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

SQL Unione tabella su se stessa in orizzontale raggruppata

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, archimede, Triumph Of Steel

SQL Unione tabella su se stessa in orizzontale raggruppata

Postdi Dylan666 » 16/03/21 14:50

Ciao a tutti,
sto lavorando con MSSQL e come al solito sono arrivato a un vicolo cieco.
Ho una tabella così fatta:

Codice: Seleziona tutto
    DATA   | CAMERA | MATTINA | POMERIGGIO
01-01-2020 | num.1  | 1       | 1
01-01-2020 | num.2  | 1       | 0
02-01-2020 | num.2  | 0       | 1


Avrei bisogni di trasporre questi dati mettendo le camere e mattin/pomeriggio in orizzonatale (cioè come colonne) raggruppati per data.
L'esempio prima diventerebbe:

Codice: Seleziona tutto
    DATA   | CAMERA-1 | MATTINA-1 | POMERIGGIO-1 | CAMERA-2 | MATTINA-2 | POMERIGGIO-2
01-01-2020 | num.1    | 1          | 1            | num.2    | 1         | 0
02-01-2020 | NULL     | NULL       | NULL         | num.2    | 0         | 1

Avevo pensato a un JOIN su se stessa ma non riesco... qualcuno sa aiutarmi?
Grazie
Avatar utente
Dylan666
Moderatore
 
Post: 39310
Iscritto il: 18/11/03 16:46

Sponsor
 

Re: SQL Select Unione tabella su se stessa in orizzontale

Postdi Dylan666 » 29/03/22 09:42

A distanza di tempo lascio la soluzione alla mia stessa domanda

Codice: Seleziona tutto
SELECT     distinct(t0.Data) AS UNIVOCO,
         t0.Data,
         t1.camera AS camera1,
         t1.mattino AS mattino1,
         t1.pomeriggio AS pomeriggio1,
         t2.camera AS camera2,
         t2.mattino AS mattino2,
         t2.pomeriggio AS pomeriggio2,
         t3.camera AS camera3,
         t3.mattino AS mattino3,
         t3.pomeriggio AS pomeriggio3,
         t4.camera AS camera4,
         t4.mattino AS mattino4,
         t4.pomeriggio AS pomeriggio4
FROM         (SELECT     Data
              FROM          dbo.Gestionecamera) AS t0
FULL OUTER JOIN
             (SELECT     Data, camera, mattino, pomeriggio
              FROM          dbo.Gestionecamera AS Gestionecamera_1
              WHERE      (camera = '1° Piano - camera 1')) AS t1
ON t0.Data = t1.Data
FULL OUTER JOIN
             (SELECT     Data, camera, mattino, pomeriggio
              FROM          dbo.Gestionecamera AS Gestionecamera_1
              WHERE      (camera = '1° Piano - camera 2')) AS t2
ON t0.Data = t2.Data
FULL OUTER JOIN
             (SELECT     Data, camera, mattino, pomeriggio
              FROM          dbo.Gestionecamera AS Gestionecamera_1
              WHERE      (camera = '1° Piano - camera 3')) AS t3
ON t0.Data = t3.Data
FULL OUTER JOIN
             (SELECT     Data, camera, mattino, pomeriggio
              FROM          dbo.Gestionecamera AS Gestionecamera_1
              WHERE      (camera = '1° Piano - camera 4')) AS t4
ON t0.Data = t4.Data
Avatar utente
Dylan666
Moderatore
 
Post: 39310
Iscritto il: 18/11/03 16:46


Torna a Programmazione


Topic correlati a "SQL Unione tabella su se stessa in orizzontale raggruppata":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti