Algunas veces usamos UNION ALL de SQL para unir el resultado de varias consultas en un mismo conjunto de datos, pero tiene el inconveniente de que es muy lento ya que mantiene los candados en la base de atos por mientras efectua toda la consulta.
Una mejor manera de hacer esto es usar el Metodo DataTableAppend() de la clase GetData();
Por ejemplo, si tenemos dos consultas SQL:
Por ejemplo, si tenemos dos consultas SQL:
"SELECT customer_id, customer_name FROM customer WHERE cost_center = 'DIS-A'"
y
"SELECT customer_id, customer_name FROM customer WHERE cost_center = 'CCI'"
con SQL seria:
en cambio con DataTableAppend() sería:
Aunque es un poco mas de código la solución es mas eficiente ya que no mantiene los candados de la base de datos por mucho tiempo.
Una mejor manera de hacer esto es usar el Metodo DataTableAppend() de la clase GetData();
Por ejemplo, si tenemos dos consultas SQL:
Por ejemplo, si tenemos dos consultas SQL:
"SELECT customer_id, customer_name FROM customer WHERE cost_center = 'DIS-A'"
y
"SELECT customer_id, customer_name FROM customer WHERE cost_center = 'CCI'"
con SQL seria:
GetData() gt = new GetData();
gt.SentenciaSQL = "SELECT customer_id, customer_name "
+ "FROM customer WHERE cost_center = 'DIS-A' "
+"UNION ALL "
+ "SELECT customer_id, customer_name "
+ "FROM customer "
+ "WHERE cost_center = 'CCI'";
DataTable dt = gt.GetDataTable();
en cambio con DataTableAppend() sería:
GetData() gt = new GetData();
gt.SentenciaSQL = "SELECT customer_id, customer_name "
+ "FROM customer "
+ "WHERE cost_center = 'DIS-A'"
DataTable dt = gt.GetDataTable();
gt.SentenciaSQL = "SELECT customer_id, customer_name "
+ "FROM customer "
+ "WHERE cost_center = 'CCI'"
dt = gt.DataTableAppend(dt, gt.GetDataTable());
Aunque es un poco mas de código la solución es mas eficiente ya que no mantiene los candados de la base de datos por mucho tiempo.
Comentarios
Publicar un comentario