Sottoquery correlata in SQL Server

Questo articolo spiega su sottoquery non correlate e correlate in SQL Server (Transact-SQL) con l’esempio.

Sottoquery correlata

Una sottoquery correlata è la sottoquery il cui valore dipende dalla query esterna. La sottoquery correlata viene eseguita ripetutamente, una volta per ogni riga selezionata dalla sottoquery.

Nella sottoquery correlata la sottoquery verrà eseguita una volta e sostituirà il valore risultante nella clausola WHERE della query esterna.

Nota: Non è possibile eseguire sottoquery correlate indipendentemente dalla query esterna.

Creiamo due tabelle per comprendere la sottoquery correlata in SQL Server (T-SQL).

Tabella Prodotti:

MySQL

1
2
3
4
5
6
7
8
9
10
11

Create table ProductsTable
(
ID int Primary Key,
Nome di tipo nvarchar(50),
Prezzo int,
Dettagli tipo nvarchar(150)
)
Insert into ProductsTable values (1, ‘Portatile’, 30000, ‘Un portatile per gli utenti home’)
Insert into ProductsTable values (2, ‘Lavatrice’, 20000, ‘colore Bianco anteriore caricare in macchina ‘)
Insert into ProductsTable values (3, ‘TV’, 22000, ’32 pollici HD LED TV’)
Insert into ProductsTable values (4, ‘Frigorifero’, 30000, ‘190 Litri doppia porta frigorifero’)

correlato-subquery-prodotti-tabella

Record di Vendite Tabella:

MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13

Create table SaleRecordTable
(
Id int Primary Key Identità,
ProductID int,
SoldQuantity int,
SaleDate Date
)
Insert into SaleRecordTable Values (2, 3, ’10-10-2016′)
Insert into SaleRecordTable Values (3, 5, ’10-10-2016′)
Insert into SaleRecordTable Values (2, 2, ’11-10-2016′)
Insert into SaleRecordTable Values (4, 6, ’11-10-2016′)
Insert into SaleRecordTable Values (2, 6, ’12-10-2016′)
Insert into SaleRecordTable Values (4, 6, ’13-10-2016′)

correlated-subquery-sale-record-table

Correlated Subquery in SQL Server-Example

La query recupererà il prodotto totale venduto dalla tabella dei record di vendita. Nella sottoquery totale prodotto venduto i dati vengono recuperati per ogni ID prodotto della tabella prodotti.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) ‘Quantità Totale Venduta’
da ProductsTable

Uscita:

correlate e non correlate-subquery correlate-uscita-1

Se si esegue la sottoquery indipendentemente quindi si verrà visualizzato il seguente messaggio di errore.

sottoquery correlata e non correlata-correlated-output-2

Sottoquery non correlata

Una sottoquery non correlata è una sottoquery indipendente dalle query esterne. È possibile eseguire sottoquery non correlate indipendentemente dalla query esterna.

Non-Correlated Subquery in SQL Server – Example

MySQL

1
2
3
4

–Non correlated query
Select ID, Name, Details
From ProductsTable
Where ID = (Select ProductID from SaleRecordTable Where SaleDate =’10-10-2016′ AND ProductID =2)

Output:correlated-subquery-non-output-1

Se eseguirai la sottoquery in modo indipendente, questa volta non otterrai alcun errore. L’output sarà:

correlated-and-non-correlated-subquery-non-output-2

Spero che questo articolo ti abbia aiutato a capire la sottoquery correlata e non correlata in SQL Server. Si prega di inviare i vostri commenti per domande e feedback. Grazie per aver letto.

Share Button
The following two tabs change content below.

  • Bio
  • Latest Posts

My Twitter profileMy Facebook profileMy Google+ profile

Gyanendu Shekhar is a technology enthusiast. He loves to learn new technologies. His area of interest includes Microsoft technologies, Augmented reality, Virtual reality, unity3d and android development.

il Mio profilo di Twitteril Mio Facebook profiloil Mio profilo Google+

Ultimi messaggi di Gyanendu Shekhar (vedi tutti)

  • Utilizzo di Materiale Trasparente in Unity 3D – 8 febbraio 2021
  • iniziamo con UI Toolkit : Unity 3D Tutorial – 30 di dicembre, 2020
  • Utilizzo di Eventi in Unity 3D – 2 Maggio 2020

Related Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *