Subconsulta Correlacionada no SQL Server

Este artigo explica sobre a não-correlacionados e subconsulta correlacionada no SQL Server (Transact-SQL) com um exemplo.

Subquery correlacionado

uma subquery correlacionada é a subquery que o valor depende da consulta externa. O subquery correlacionado é executado repetidamente, uma vez por cada linha que é selecionada pelo subquery.

In correlated subquery the subquery will be executing once and the will substitute the resulting value into WHERE clause of the outer query.

Nota: Você não pode executar subquery correlacionado independentemente da consulta externa.

vamos criar duas tabelas para entender subquery correlacionado no servidor SQL (T-SQL).quadro dos produtos:

MySQL

1
2
3
4
5
6
7
8
9
10
11

Criar tabela ProductsTable
(
ID int Primary Key,
Nome do tipo de dados nvarchar(50),
Preço int,
Detalhes nvarchar(150)
)
Insert into ProductsTable values (1, ‘Laptop’, 30000, “Um laptop para usuários domésticos’)
Insert into ProductsTable Values (2, ‘Máquina de Lavar roupa’, 20000, ‘da cor Branca de carga frontal da máquina ‘)
Insert into ProductsTable Values (3, ‘TELEVISÃO’, 22000, ’32 polegadas LED HD TV)
Insert into ProductsTable Values (4, ‘Geladeira’, 30000, ‘190 Ltr dupla porta de geladeira’)

correlacionados-subconsulta-produtos-tabela

o Recorde de Vendas Tabela de:

MySQL

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

Criar tabela SaleRecordTable
(
Id int Primary Key Identidade,
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

The query will retrieve total product sold from sales record table. No subquery, os dados totais do produto vendido são recuperados para cada id do produto de tabela de produtos.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) ‘Quantidade Total Vendida’
a partir de ProductsTable

Resultado:

correlacionados e não-correlacionados-subconsulta correlacionados de saída 1

Se você executar a subconsulta de forma independente, em seguida, você receberá o seguinte erro.

correlacionados e não-correlacionados-subconsulta correlacionados de saída 2

Não Subconsulta correlacionada

não subconsulta correlacionada é uma subconsulta que é independente do exterior consultas. Você pode executar subquery não correlacionado independentemente da consulta externa.

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)

Saída:correlated-subquery-non-output-1

A saída será:

correlacionados e não-correlacionados-subconsulta-sem-saída 2

Espero que este artigo o tenha ajudado a entender correlacionados e não-subconsulta correlacionada no SQL Server. Por favor, publique seus comentários para consultas e comentários. Obrigado por leres.

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.

Meu perfil no TwitterMeu Facebook perfilMeu perfil do Google+

Postagens mais recentes por Gyanendu Shekhar (ver todas)

  • a Utilização de Material Transparente em Unity 3D – 8 de fevereiro de 2021
  • primeiros passos com o kit de ferramentas de INTERFACE do usuário : Unity 3D Tutorial – 30 de dezembro de 2020
  • o Uso de Eventos na Unity 3D – 2 de Maio de 2020

Related Posts

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *