|
|
|
|
- Presentación
- Consulta SQL con unión externa a un archivo de datos (editor de consultas)
- Consulta SQL con join externo mediante programación
¿Cómo crear una consulta con join externo?
En el lenguaje SQL, se utiliza un join externo para excluir o incluir registros de archivos con o sin correspondencias en los archivos relacionado.. Por Default, cuando se crea una consulta entre 2 archivos de datos de relacionado, sólo se procesan los registros con una correspondencia entre los 2 archivos. A los registros sin correspondencia de Process hay que añadir un external join. Veamos cómo realizar una unión externa usando: Consulta SQL con unión externa a un archivo de datos (editor de consultas) Esta consulta se utiliza para seleccionar los registros que se encuentran en un archivo de datos (archivo principal) con una correspondencia (unión) a otro archivo de datos (archivo fsecundario o archivo relacionado), sabiendo que todos los registros que se encuentran en el archivo principal no tienen necesariamente una correspondencia en el archivo secundario. En este ejemplo, vamos a seleccionar los registros que se encuentran en el fichero CLIENTE (fichero principal) con la suma de los pedidos en el fichero PEDIDO (fichero secundario) de cada cliente.. Algunos clientes pueden no tener pedido. Por lo tanto, un external join debe ser añadido en la consulta a Process el cliente sin órdenes. Los diferentes pasos para crear esta consulta SQL con un enlace externo son los siguientes: - Haga clic en en los botones de acceso rápido.
- En la ventana que se muestra, haga clic en "Consultas".
- El asistente de creación de consultas se abre.
- Seleccione crear una consulta de selección (opción "Selección (SELECT)").
Pase a la etapa siguiente del asistente. - La ventana de descripción de la consulta se abre.
- Dar un nombre y una leyenda a la consulta:
- En la sección izquierda de la ventana de description, elija los elementos del archivo que se utilizarán (en nuestro ejemplo, el archivo CUSTOMER y los elementos CustomerName, Company y City, luego el archivo ORDER y el elemento TOTALBT).
- Haga doble clic en los nombres de los elementos para añadirlos a la lista de elementos de consulta:
- Para realizar la suma de las órdenes, haga clic en el botón "Suma" en la sección derecha del editor. En el editor aparece la siguiente ventana:
- Validar. La ventana de consulta description se actualiza:
- Valide la ventana de descripción de la consulta. En el editor se visualiza la siguiente consulta:
- Para añadir la unión externa, haga doble clic en el área "Unión.
- La ventana de description de la unión se muestra.
- Para seleccionar la dirección de la unión externa, marque la casilla "incluir..." correspondiente a la dirección deseada. En nuestro ejemplo, se incluyen los registros encontrados en el archivo CLIENTE sin pedidos..
- Validar. La ventana de consulta description se actualiza.
- Guardar la consulta (Ctrl + S).
- Presione F2 para ver el código SQL:
- Ejecutar la prueba de consulta (GO en los botones de acceso rápido).
- La consulta puede ser ejecutada en el programa por HExecuteQuery.
Consulta SQL con join externo mediante programación Las consultas SQL pueden escribirse directamente mediante programación en el código WLanguage. Para ello, es necesario: - Crear una Variable de tipo Fuente de datos para representar la consulta en tiempo de ejecución.
- Crear una cadena de caracteres Variable para contener el código SQL de la consulta y escribir el código SQL en este Variable.
- Ejecute la consulta SQL con HExecuteSQLQuery.
- Explore el resultado con las funciones HReadXXX.
Ejemplo de código Src1 is Data Source sSQLCode is string // Select the products whose price is greater than ... sSQLCode = [ SELECT CUSTOMER.CustomerName AS CustomerName, CUSTOMER.Company AS Company, CUSTOMER.City AS City, SUM(ORDERS.TotalBT) AS the_sum_TotalBT FROM CUSTOMER LEFT OUTER JOIN ORDERS ON CUSTOMER.CustNum = ORDERS.CustNum GROUP BY CUSTOMER.CustomerName, CUSTOMER.Company, CUSTOMER.City ] HExecuteSQLQuery(Src1, hQueryDefault, sSQLCode) FOR EACH Src1 Trace(Src1.CustomerName, Src1.Company, Src1.the_sum_TotalBT) END
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|