Subconsulta correlacionada en SQL Server

Este artículo explica sobre subconsulta no correlacionada y correlacionada en SQL Server (Transact-SQL) con un ejemplo.

Subconsulta correlacionada

Una subconsulta correlacionada es la subconsulta cuyo valor depende de la consulta externa. La subconsulta correlacionada se ejecuta repetidamente, una vez por cada fila seleccionada por la subconsulta.

En subconsulta correlacionada, la subconsulta se ejecutará una vez y sustituirá el valor resultante en la cláusula WHERE de la consulta externa.

Nota: No se puede ejecutar subconsulta correlacionada independientemente de la consulta externa.

Vamos a crear dos tablas para entender subconsulta correlacionada en SQL Server (T-SQL).

Tabla de Productos:

MySQL

1
2
3
4
5
6
7
8
9
10
11

Crear tabla ProductsTable
(
ID int Primary Key,
Nombre nvarchar(50),
Precio int
Detalles de tipo nvarchar(150)
)
Insertar en los valores de la tabla de productos (1, ‘Laptop’, 30000, ‘Una computadora portátil para usuarios domésticos’)
Insertar en los valores de la tabla de productos (2, ‘Lavadora’, 20000, ‘Máquina de carga frontal de color blanco ‘)
Insertar en los valores de la tabla de productos (3, ‘TV’, 22000, ‘TV LED HD de 32 pulgadas’)
Insertar en valores de tabla de productos (4, ‘Nevera’, 30000, ‘nevera de doble puerta de 190 litros’)

tabla de registro de ventas de subconsulta correlacionada

:

MySQL

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

Crear tabla SaleRecordTable
(
Id int Clave Primaria de Identidad,
ProductID int
SoldQuantity de tipo 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 en SQL Server – Ejemplo

La consulta recuperará el producto total vendido de la tabla de registros de ventas. En subconsulta, los datos totales del producto vendido se recuperan para cada id de producto de la tabla de productos.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) como»Cantidad total Vendida»
de ProductsTable

Salida:

salida correlacionada y no correlacionada de subconsulta correlacionada-1

Si ejecuta la subconsulta de forma independiente, obtendrá el siguiente error.

subconsulta correlacionada y no correlacionada-salida correlacionada-2

Subconsulta no correlacionada

Una subconsulta no correlacionada es una subconsulta que es independiente de las consultas externas. Puede ejecutar subconsulta no correlacionada independientemente de la 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)

Salida:subconsulta correlacionada-sin salida-1

Si ejecuta la subconsulta de forma independiente, esta vez no obtendrá ningún error. La salida será:

subconsulta correlacionada y no correlacionada-no salida-2

Espero que este artículo le haya ayudado a comprender subconsulta correlacionada y no correlacionada en SQL Server. Por favor, publique sus comentarios para consultas y comentarios. Gracias por leer.

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.

Mi perfil de TwitterMi perfil de Facebookdiv>

Últimas publicaciones de Gyanendu Shekhar (ver todas)

  • Uso de material transparente en Unity 3D – 8 de febrero de 2021
  • Introducción al kit de herramientas de interfaz de usuario : Tutorial de Unity 3D – 30 de diciembre de 2020
  • Uso de eventos en Unity 3D – 2 de mayo de 2020

Related Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *