2. Objetivo
Al finalizar el taller, el participante:
Comprenderá los conceptos básicos relacionados con definición de
datos, manipulación de datos y procedimientos almacenados.
Escribirá sentencias en lenguaje SQL para consultar, modificar e
insertar información.
Desarrollará procedimientos almacenados en lenguaje SQL.
Utilizará Alfaquerys para ejecutar consultas en tablas de Aspel-SAE.
4. Dinámica
Se plantearán requerimientos de información para resolverse
mediante instrucciones de lenguaje SQL. Se explicarán los
conceptos principales y se aplicará la solución sobre tablas de
Aspel-SAE.
6. Tipos de dato
Clientes SAE 4.X
Column_name Type Column_name Type
NUM_REG int ATENCION varchar
CCLIE varchar ATEN_COB varchar
REV_PAG varchar
STATUS varchar
CLASIFIC varchar
NOMBRE varchar
DIAS_CRE smallint
RFC varchar
FCH_ULTCOM datetime
DIR varchar
VEND varchar
POB varchar
DESCUENTO float
CODIGO varchar LIM_CRED float
TELEFONO varchar SALDO float
7. Tipos de dato
Clientes SAE 4.X
Identificar los valores que existen en la tabla CUEN01,
¿qué tipo de dato es el importe?, ¿Qué tipo de dato es la
referencia? Utiliza la instrucción SELECT * FROM CUEN01
8. QUE Relaciones básicas en Aspel-SAE
La tabla de facturación incluye cabecera y partidas, ambas
tablas se relacionan y al mismo tiempo se relacionan con
otras como clientes, inventarios, vendedores y cuentas por
cobrar.
9. QUE Relaciones básicas en Aspel-SAE
SELECT * FROM FACT01
SELECT * FROM FA0TY1
10. Relaciones básicas en Aspel-SAE
QUE
Identificar las relaciones entre las tablas de cabecera
y partidas de facturación. ¿Por qué la clave del
documento no es suficiente para relacionar ambas
tablas?
11. QUE
Relaciones básicas en Aspel-SAE
Las tablas de compras incluyen cabecera y partidas
que se relacionan entre sí , y además, éstas se
relacionan con otras como proveedores, inventarios y
cuentas por pagar.
12. QUE Relaciones básicas en Aspel-SAE
Identificar las relaciones entre las tablas de cabecera y partidas
de compras. ¿Cuál es la utilidad del campo NUM_REG en SAE
4.X?, ¿Hacia dónde están justificados los valores de la clave de
documento?
13. QUE Relaciones básicas en Aspel-SAE
SELECT * FROM MINV01
SELECT * FROM CUEN01
14. QUE
Relaciones básicas en Aspel-SAE
Visualiza los campos de la tabla de movimientos al
inventario ¿Esta tabla permite dos o más registros
idénticos?
15. QUE Aplicando el lenguaje SQL
Selección de datos con filtro
SELECT * FROM nombre de tabla WHERE campo = valor
Ordenamiento
ORDER BY
Filtros adicionales
BETWEEN, LIKE
Ejercicios adicionales
16. QUE Aplicando el lenguaje SQL
Clientes filtrados por saldo ¿Cuáles clientes tienen un
saldo mayor a 10,000?
Facturas filtradas por fecha: ¿Cuáles facturas se
generaron en Enero?
Facturas filtradas por fecha y cliente: ¿ A Cuáles
clientes se les facturó en Diciembre?
Búsqueda de un cliente de quien solo se conoce parte
del RFC
17. QUE Aplicando el lenguaje SQL
Selección de datos agrupados
SELECT campo SUM(camponumerico) FROM
tabla1 GROUP BY campo
Funciones de agregación:
AVG
MAX MIN
18. QUE Aplicando el lenguaje SQL
a) Suma de importe de facturas por cliente y fecha
b) Suma de importe de facturas por vendedor
c) Conteo de facturas canceladas
19. QUE Aplicando el lenguaje SQL
Subconsultas:
SELECT campo1, campo2 FROM tabla1 WHERE campo3 IN (SELECT
campo4 FROM tabla2)
Otras variantes:
NOT IN,EXISTS
20. QUE Aplicando el lenguaje SQL
a) Selección de productos que han sido registrados en cotizaciones
b) Selección de productos que nunca han sido devueltos
c) Mostrar un valor si existen facturas canceladas (MSSQL)
c) Mostrar facturas que no generaron cuenta por cobrar
21. QUE
Aplicando el lenguaje SQL
Consultas de datos de varias tablas:
SELECT campo1, campo2 FROM tabla1 alias JOIN tabla2 alias ON alias1.campo =
alias1.campo
22. QUE
Aplicando el lenguaje SQL
a) Facturas con datos de clientes: Lista de facturas con nombre de cliente y dias
de crédito
b) Lista de artículos comprados en el mes de Enero, mostrando el costo promedio
c) Lista de clientes con nombre del vendedor
23. QUE Aplicando el lenguaje SQL
Funciones de cadena
SELECT SUBSTRING (RFC FROM 2 FOR 3) FROM CLIE01
SELECT SUBSTRING(RFC, 3,2) FROM CLIE01
Otras variantes
LEFT , RIGHT
24. QUE Aplicando el lenguaje SQL
a) Seleccionar productos que comiencen con un prefijo
b) Seleccionar productos en cuyo código aparezcan dos
caracteres buscados
c) Seleccionar clientes cuyo RFC contenga caracteres
intermedios específicos
25. QUE Aplicando el lenguaje SQL
Instrucción CASE
SELECT CASE campo WHEN valor1 THEN resultado1 WHEN valor2 THEN
resultado2 END
Otras variantes:
SELECT CASE WHEN campo1 < valor1 THEN resultado1 WHEN campo1 >
valor1 THEN resultado2 END
26. Aplicando el lenguaje SQL
QUE
Generar una consulta que nos indique si un cliente es
nacional o extranjero
27. QUE Aplicando el lenguaje SQL
Actualización de datos
UPDATE tabla1 SET campo1 = valor1 WHERE campo2 = valor2
28. QUE Aplicando el lenguaje SQL
a) Actualizar el campo de número de guia en una factura
b) Actualizar stock mínimo en inventários
c) Actualizar % de comisión a los vendedores
29. QUE Aplicando el lenguaje SQL
Creación de tablas
CREATE TABLE nombretabla
(
campo1 CHAR(100),
campo2 CHAR(100)
)
30. QUE Aplicando el lenguaje SQL
a) Crear un directorio de clientes con nombre y telefono
b) Llenar la tabla con datos del catálogo de cuentas
31. QUE
Aplicando el lenguaje SQL
CREATE TABLE DIRECTORIO
(
NOMBRE VARCHAR(100),
TELEFONO VARCHAR(100)
)
INSERT INTO DIRECTORIO
SELECT NOMBRE, TELEFONOS FROM CLIE01
32. QUE Aplicando el lenguaje SQL
Procedimientos almacenados:
Los procedimientos almacenados son rutinas que integran
código para su reutilización. Un procedimiento almacenado
puede incluir parámetros de entrada y devolver resultados o
mensajes para el cliente.
33. QUE Aplicando el lenguaje SQL
Procedimientos almacenados:
a) Actualizar campo libre numérico con las ventas promedio
del año
b) Actualizar línea de producto para artículos no vendidos
en el último año
34. QUE Tips & Tricks
A diferencia de SAE 4.X, en SAE 5.0 la información de facturación se distribuye en
diferentes tablas según el tipo de documento.
SELECT * FROM FACTF01
SELECT * FROM PAR_FACTF01
SELECT C.CVE_DOC, P.CVE_ART FROM FACTF01 C JOIN
PAR_FACTF01 P ON C.CVE_DOC = P.CVE_DOC
35. Tips & Tricks
QUE
Triggers
CREATE TRIGGER CONTACTOS2 ON CONTAC01
FOR INSERT
AS BEGIN
DECLARE
@cliente varchar(10)
SELECT @CLIENTE = CVE_CLPV
FROM Inserted
INSERT INTO TEMPORAL (CLIENTE, NOMBRE) VALUES (@CLIENTE,'
')
RETURN
END
36. QUE
Tips & Tricks
Cursores
Los cursores son instrucciones que permiten evaluar de manera individual
los registros de una tabla y ejecutar acciones en cada paso.