Sunteți pe pagina 1din 107

TRANSACT - SQL

NIVEL BSICO
NIVEL INTERMEDIO
NIVEL AVANZADO
TRANSACT - SQL
NIVEL BSICO

Structure Query Language


Lenguaje de Consulta Estructurado
Contenido del nivel Bsico

Conceptos bsico de una Base de datos (BD).


Estructura de una tabla
Partes que componen el analizador de consulta.
Palabras Reservadas.
Sintaxis de SQL.
Consulta para ordenar (order by)
Alias para los campos
Condicin de busqueda (where)
Objetivos

Conocer los conceptos bsicos de una base de datos.


Explicar para que se utiliza el lenguaje de SQL.
Aprender las palabras reservadas para el uso de las consultas en
SQL.
Conocer la sintaxis bsica para la consulta de informacin.
Aprender las funciones para ordenar y filtrar datos.
Qu es un Base de Datos?

Una base de datos es un


conjunto de datos
agrupados y ordenados.
Una biblioteca puede
considerarse una base de
datos compuesta en su
mayora por libros y
documentos indizados para
su consulta.
Ejemplos de base de datos:
gua telefnica, agenda de
nmeros telefnicos
Pregunta

Cul es la utilidad de las base de datos computarizadas?


La utilidad se basa en encontrar la informacin en segundos, lo que se demorara
horas hojeando agendas, libros, peridicos.
Ejemplos
de base de
datos

El Directorio Telefnico
Vs Las Paginas Amarillas
En Internet

http://www.paginasamarillas.com/pagamanet/web/home.aspx?ipa=4
Entonces, Cmo se guarda informacin en una base de
datos?

La informacin se guarda en Tablas:

COLUMNAS = CAMPO NOMBRE DE LA TABLA

Datos Personales

Nombre Apellido Direccin Telfono

Yoni Sawransky El Dorado 300-0000

Hamed Pealba Las Cumbres 300-0011


FILAS = REGISTROS Maria Luisa Acevedo Bethania 300-0022
Estructura de la Tabla
Para facilitar el registro de datos en una determinada tabla se han
creado formularios, cuya integracin se convierte en lo que
denominamos un programa.

Datos Maestros de Negocios


Cdigo Nombre Nombre Extranjero R.U.C.
UFC UFC,S.A. Universal Football Club 8-55-565-656-56

Op44 Oportunity,S.A. Oportunidad,S.A. 8-796-425-4485


Estructura del Analizador de Consultas
Ejecutar la consulta
Verificar la consulta Elegir Base de datos

Base de Datos
Buscador de Objetos

Tablas

Escribe aqu!

Campos
Palabras Reservadas

Son las palabras definidas por el lenguaje para realizar


las diferentes consultas o acciones.
Ejemplo de ellas: select, from, and, order by, insert.
Nota : las palabras reservadas tendran un color azul en
el sistema.
Sintaxis en SQL

SELECT campo1, campo2, campo3 FROM Nom_Tabla

SELECT = SELECCIONAR
Campo 1,2,3 = nombres de los campos o columnas que se desea
buscar la informacin.
FROM = DESDE O DE
Nom_tabla = nombre de la tabla donde se buscaran los datos.
Recuperar todos los datos de una tabla

SELECT * FROM Tabla

Qu deseo De dnde?
Recuperar?
Recupera todos los datos de
una columna

SELECT Campo1 FROM Tabla


Recuperar varias Campos

SELECT Campo1, Campo2, Campo3 FROM Tabla


Prctica #1

Escribe una consulta que muestre:

1. Todas los campos de la tabla OITM (Artculos).

2. El primer campo de la tabla OITM.

3. Los primeros 5 campos de la tabla OITM.


Ordenar Registro

Clusula Order By

SELECT Campo1, Campo2, Campo3


FROM Tabla
ORDER BY Campo2
Ordenar Datos empleando varios Campos

SELECT Campo1, Campo2, Campo3


FROM Tabla
ORDER BY Campo1, Campo2
Ordenar Datos especificando la orientacin

SELECT campo1 ,campo2,campo3


FROM Tabla
ORDER BY campo1DESC,campo2

Ordena Campo1 De Mayor A Menor


Prctica #2

De la Tabla SOCIO DE NEGOCIOS (OCRD), escribe una consulta


que muestre los siguientes datos :
Pas (Country)
Cliente (Cardname)
Balance (Balance)
Telfono (Phone1)
Ordenando:
Primero, por Pas de mayor a menor
Segundo, por cliente de menor a mayor.
I RECESO
15 MINUTOS
Alias para Columnas

Alias: Se puede utilizar para cambiar el nombre de tablas y columnas.

/*ALIAS*/

SELECT nombre_columna AS encabezado_columna FROM nombre_tabla

SELECT encabezado_columna = nombre_columna FROM Nombre_tabla

SELECT nombre_columna AS [encabezado columna] FROM nombre_tabla

SELECT nombre_columna AS encabezado columna FROM nombre_tabla


Prctica #1

De la tabla Artculos (OITM) escribe una consulta


que muestre:
Itemcode: Cdigo de artculo
ItemName: Nombre de artculo
Onhand: Existencias

Condicin:
Donde Onhand sea mayor a cero.
Asgnale los nombres propuestos.
WHERE
(condicin de busqueda)

Usando el signo de igual =


SELECT Campo1, Campo2, Campo3
FROM Tabla
WHERE Campo3 = 100
ORDER BY Campo1, Campo2

Usando el signo de mayor que >


SELECT Campo1, Campo2, Campo3
FROM Tabla
WHERE Campo3 > 100
ORDER BY Campo1, Campo2
WHERE
Utilizando el signo de menor igual que <=

SELECT campo1 ,campo2,campo3


FROM Tabla
WHERE campo3 <= 100
ORDER BY campo1,campo2

Usando el signo distinto de, <>

SELECT campo1 ,campo2,campo3


FROM Tabla
WHERE campo3 <> 100
ORDER BY campo1,campo2
WHERE

SELECT campo1, campo2, campo3


FROM Tabla
WHERE campo2 = Y
ORDER BY campo1, campo2
Prctica #2

De la tabla Artculos (OITM), escribe una consulta que muestre los


siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
Onhand (Inventario)
BuyUnitMsr (Unidad de medida compras)
NumInBuy (Cantidad de artculos por unidad)

Donde:
NumInBuy sea igual a 1.
Prctica #3

De la tabla Artculos (OITM), escribe una consulta que


muestre los siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
OnOrder (Pedido a Proveedor)
Onhand (En Inventario)
Donde:
Onorder sea mayor que cero
Prctica #4

De la tabla Artculos (OITM), escribe una consulta que


muestre los siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
OnOrder (Pedido a Proveedor)
Onhand (En Inventario)

Donde:
Onhand sea menor igual que cero
Prctica #5

De la tabla Artculos (OITM), escribe una consulta que


muestre los siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
Iscommited (Pedido por cliente)
Onhand (En Inventario)
Donde:
Iscommited sea distinto de cero.
Prctica #6

De la tabla Artculos (OITM), escribe una consulta que


muestre los siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
Onhand (En Inventario)
SellItem (Artculo de venta.Y/N)
Donde:
SellItem sea igual N.
Aprendimos que

SQL: Es un lenguaje que nos permite comunicarnos con


una base de datos.
La base de datos est organizada en tablas.
La sintaxis bsica de SQL es:
SELECT * FROM TABLA
Es posible renombrar las columnas en una consulta
asignndole un alias.
Podemos elegir campos, filtrar y ordenar datos con:
SELECT, WHERE y ORDER BY
Felicidades!

Has culminado el curso bsico de


TRANSACT SQL
Contenido de Nivel Intermedio

Operadores lgicos
AND, OR, IN /NOT IN
Operadores de bsqueda
LIKE/ NOT LIKE
Operadores de Unin
CONCATENAR
Funciones de Cadenas
LEFT, LEN, STR, RIGHT
Consulta Multitabla
INNER JOIN
El Siguiente Nivel Contiene

Incluir varios filtros en una misma consulta utilizando AND


y OR.
Comprender orden de evaluacin de los filtros y la
utilizacin de parntesis.
Emplear la palabra clave Like para filtrar datos.
Unir campos
Personalizar nombre de los campos seleccionados
Realizar clculos matemticos
Emplear alias para tablas
Consultar datos de dos o ms tablas en la misma consulta.
TRANSACT - SQL
NIVEL INTERMEDIO

Structure Query Language


Lenguaje de Consulta Estructurado
Objetivos

Incluir varios filtros en una misma consulta utilizando


AND ,OR e IN.
Comprender orden de evaluacin de los filtros y la
utilizacin de parntesis.
Emplear la palabra clave LIKE para filtrar datos.
Unir campos (concatenar).
Realizar clculos matemticos.
Emplear alias para tablas.
Consultar datos de dos o ms tablas en la misma
consulta.
AND

Cmo utilizar ms de un filtro en una misma consulta?

Los registros
recuperados
cumplirn con
A AB B
ambas condiciones:
Todos los valores
en el campo2
sern igual A y en
el campo4 igual a
B
SELECT campo1 ,campo2,campo3
FROM Tabla
WHERE campo2 = A AND campo4 =B
ORDER BY campo1, campo2
PRCTICA

Realice la siguiente consulta utilizando AND

Selecciones los campos de Cdigo de Artculo y Descripcin de


la tabla ? de los artculos. Donde solo muestre los artculo
que tienen en Stock mayores de 4 y menores de 10.

SELECT itemcode, itemname


FROM oitm
WHERE onhand <=10AND onhand >=4
OR

Cmo utilizar ms de un filtro en una misma consulta?

Los registros recuperados tendrn :


En el campo2, valores A sin importar
qu valor tenga el campo4.
A Tambin, en el campo4 valores B sin B
importar qu valor tenga el campo2.
Alguna de las dos condiciones se
cumplir o puede que ambas se
cumplan.

SELECT campo1, campo2, campo3


FROM Tabla
WHERE campo2 = A OR campo4 =B
ORDER BY campo1, campo2
PRCTICA

Realice la siguiente consulta utilizando OR

Selecciones los campos de Cdigo de Artculo y Descripcin de


la tabla ? de los artculos. Donde solo muestre los artculo
que tienen en Stock mayores de 4 menores de 10.

SELECT itemcode, itemname


FROM oitm
WHERE onhand <=10 OR onhand >=4
IN / NOT IN

Cmo utilizar ms de un filtro en una misma consulta?

SELECT campo1 ,campo2,campo3


FROM Tabla
WHERE campo2 IN (C,L)
ORDER BY campo1,campo2

SELECT campo1 ,campo2,campo3


FROM Tabla
WHERE campo2 NOT IN (C,L)
ORDER BY campo1,campo2
PRCTICA

Realice la siguiente consulta utilizando IN

Selecciones los campos de Cdigo de Socio de Negocio y


Descripcin de la tabla ? de los Socios de Negocios. Donde
solo muestre los cdigos de los clientes desde D-CCT hasta
C-FF.

SELECT cardcode, cardname


FROM ocrd
WHERE cardcode IN(D-CCT, C-FF)
Orden de Evaluacin

SELECT campo1, campo2, campo3


FROM Tabla
WHERE campo2 = Y OR campo3 =Y AND campo4=N
ORDER BY campo1, campo2

SELECT campo1, campo2, campo3


FROM Tabla
WHERE (campo2 = Y OR campo3 =Y) AND campo4=N
ORDER BY campo1, campo2
Orden de Evaluacin AND, OR, IN y NOT IN

SELECT campo1, campo2, campo3


FROM Tabla
WHERE campo2 IN (C,L) AND campo3=N OR
campo4<>PA AND campo5<= 0
ORDER BY campo1, campo2

SELECT campo1, campo2, campo3


FROM Tabla
WHERE campo2 NOT IN (C,L) AND campo3=N OR
campo4<>PA AND campo5<= 0
ORDER BY campo1, campo2
Prctica #1
De la tabla ARTICULOS (OITM), escribe una consulta que muestre
los siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
Onhand (En Inventario)
Iscommited(Pedido por cliente)
Onorder (Pedido a Proveedor)
Cardcode(Proveedor)
DONDE:
SellItem sea igual Y, Invntitem sea igual
Y , tambin Prchseitem sea igual a Y y el
inventario sea menor o igual a cero. O el
proveedor es uno de estos: A-SONCEN, A-
TI, A-WO
RECESO
15 MINUTOS
LIKE

Contiene

SELECT campo1, campo2


FROM tabla
WHERE campo1 LIKE %acb%
LIKE

Inicia con

SELECT campo1,campo2
FROM tabla
WHERE campo1 LIKE acb%
LIKE

Termina en

SELECT campo1, campo2


FROM tabla
WHERE campo1 LIKE %acb
NOT LIKE

No Contiene

SELECT campo1, campo2


FROM tabla
WHERE campo1 NOT LIKE %acb%
NOT LIKE

No Inicia con

SELECT campo1, campo2


FROM tabla
WHERE campo1 NOT LIKE acb%
NOT LIKE

No termina en

SELECT campo1, campo2


FROM tabla
WHERE campo1 NOT LIKE %acb
PRCTICA

Realice la siguiente consulta utilizando LIKE

Selecciones los campos de Cdigo de Socio de Negocio y


Descripcin de la tabla ? de los Socios de Negocios. Donde
muestre los socios que posean en su nombre la palabra Foto.

SELECT cardcode, cardname


FROM ocrd
WHERE cardname LIKE%Foto%
Prctica #2

De la tabla ARTICULOS (OITM), escribe una consulta que muestre


los siguientes datos :
Cdigo (Itemcode)
Descripcin (Itemname)
Onhand (En Inventario)
Iscommited(Pedido por cliente)
Onorder (Pedido a Proveedor)
Cardcode(Proveedor)
DONDE:
La descripcin del artculo no contiene la
palabra televisor y el cdigo no inicia con
la letra K.
CONCATENAR

Concatenar es Unir campos alfanumricos

SELECT Campo1+ +Campo2


FROM Tabla
Prctica #3
De la tabla OCRD escribe una consulta que muestre en un
solo campo y separados por comas los siguientes campos:
Cardname: Nombre del Cliente
Country: Pas
City: Ciudad
Address: Direccin

Instruccin:
Asgnale un alias.
Operadores Aritmticos

+ Suma
- Resta
Aritmticos
* Producto
/ Divisin
% Mdulo
Prctica #5
De la tabla OITM escribe una consulta que muestre:
Itemcode (Cdigo)
Itemname (Nombre de artculo)
Onhand (Existencias) menos Iscommited (Pedido
por cliente) ms Onorder (Pedido a Proveedor)
Onhand (Existencias) multiplicado por Avgprice
(Precio Promedio)

Indicacin:
Asgnale alias a cada campo
ALIAS PARA TABLAS

Se utiliza para asignarle un nombre corto a la


tabla.

SELECT T0.campo1, T0.campo2


FROM Tabla T0
Prctica #6

De la tabla Pedidos de Cliente (ORDR) escribe una


consulta que muestre:
Docnum (Numero de Documento)
Cardcode (Cdigo de cliente)
Cardname (Nombre de Cliente)
Doctotal (Total de Documento)

Indicacin:
Asgnale alias a cada campo y a la tabla
Funciones de Cadena

FUNCIN DESCRIPCIN
LEFT Devuelve la parte de una cadena de caracteres que comienza
en el nmero de caracteres especificado a partir de la
izquierda.
LEN Devuelve el nmero de caracteres, en lugar del nmero de
bytes, de la expresin de cadena dada, excluidos los espacios
finales en blanco.
STR Devuelve datos de tipo carcter obtenidos a partir de datos
numricos.
RIGHT Devuelve la parte de una cadena de caracteres que comienza
en el nmero de caracteres especificado en expresinEntera a
partir de la derecha.
FUNCIN LEFT

SELECT LEFT(expresinCarcter, expresinEntera)

SELECT cardname, LEFT(cardname,5) as LEFT


FROM OCRD

CardName LEFT
REYES TRADING COMP. REYES
FUNCIN LEN

SELECT LEN(expresinCadena)

SELECT cardname, LEN(cardname) as LEN


FROM OCRD

CardName LEN
REYES TRADING COMP. 19
FUNCIN STR

SELECT STR(expresinFloat[, longitud[, decimales]])

SELECT doctotal, str(doctotal,10,2) FROM OINV

Doctotal STR
2452.680000 2452.68
828.500001 828.50
FUNCIN RIGHT

SELECT RIGHT(expresinCarcter, expresinEntera)

SELECT cardname, RIGHT(cardname,5) as RIGHT


FROM OCRD

CardName RIGHT
REYES TRADING COMP. COMP.
INNER JOIN

Obtener datos de dos o ms tablas en la misma consulta

SELECT T0.campo2, T1.campo3


FROM Tabla1 T0, Tabla2 T1
WHERE T0.campo2 = T1.campo2

SELECT T0.campo2, T1.campo3


FROM Tabla1 T0 INNER JOIN Tabla2 T1
ON T0.campo2 = T1.campo2
Llave primaria, es la que identifica de forma nica un registro.
Prctica #9
Utiliza las siguientes tablas: OCRD, OITM, OCRT1.

Escribe una consulta que muestre:


Itemcode (Cdigo de Articulo)
Itemname (Nombre de Articulo)
Cardname (Nombre del Proveedor)
Name (Nombre del pas del Proveedor)

Condicin
Ordnalo por pas
Aprendimos que
Puedo restringir la bsqueda de registros, utilizando
varios filtros en una misma consulta con: AND ,OR , IN y
LIKE.
Con el signo + puedo unir campos alfanumricos adems
de realizar clculos matemticos.
Es buena prctica emplear alias para tablas.
Debo utilizar INNER JOIN para relacionar y consultar datos
de dos o ms tablas en la misma consulta.
Felicidades!

Has culminado el curso intermedio de


TRANSACT SQL
Siguiente Nivel

INNER JOIN utilizando ms de un enlace.


LEFT JOIN
RIGHT JOIN
FULL OUTER JOIN
GROUP BY
(SUM,MAX,MIN,COUNT)
HAVING
ISNULL/ IS NULL
CASE
CONVERT (Un dato numrico a alfanumrico)
Funciones matemticas (ABS,FLOOR,CEILING,ROUND)
Funciones de fecha (Getdate(), datediff y datepart)
TRANSACT - SQL
NIVEL AVANZADO

Structure Query Language


Lenguaje de Consulta Estructurado
Objetivo

Utilizar INNER JOIN con ms de un enlace.


Interpretar las relaciones con LEFT JOIN, RIGHT JOIN y FULL
OUTER JOIN .
Agrupar registros empleando la instruccin GROUP BY.
Sumar y contar registros. Extraer el valor ms alto ms bajo de
campo (SUM,MAX,MIN,COUNT).
Aplicar filtro a los datos agrupados. HAVING
Conocer los comandos ISNULL - IS NULL.
Manipular resultados con CASE.
CONVERT (Un dato numrico a alfanumrico).
Utilizar funciones matemticas (ABS,FLOOR,CEILING,ROUND)
COMBINACIONES PARA RECUPERAR DATOS DE DOS
O MS TABLAS
INNER JOIN

Obtener datos de dos o ms tablas en la misma consulta aplicando


ms de un enlace

SELECT T0.campo2,T1.campo3
FROM Tabla1 T0 INNER JOIN Tabla2 T1
ON T0.campo2 = T1.campo2 AND T0.campo3 = T1.campo3
LEFT JOIN

Obtener datos de dos o ms tablas en la misma consulta.

SELECT T0.campo2, T1.campo3


FROM tabla1 T0 LEFT JOIN tabla2 T1
ON T0.campo2 = T1.campo2
RIGHT JOIN

Obtener datos de dos o ms tablas en la misma consulta.

SELECT T0.campo2,T1.campo3
FROM Tabla1 T0 RIGHT JOIN Tabla2 T1
ON T0.campo2 = T1.campo2.
FULL OUTER JOIN

Obtener datos de dos o ms tablas en la misma consulta.

SELECT T0.campo2,T1.campo3
FROM tabla1 T0 FULL OUTER JOIN tabla2 T1
ON T0.campo2 = T1.campo2.
Prctica #1
1. De la tabla Socio de Negocios (OCRD) y Pas (OCRY).
Escribe una consulta que muestre:
Cardcode (cdigo del cliente), Cardname (nombre del
cliente),
Name (Nombre del Pas del cliente).
Utiliza INNER JOIN LEFT JOIN. Donde Cardtype (tipo de socio)
es igual C. Ordenar por cliente.

2. De la tabla OCRD(Socio de Negocios) y OCRY (Pas). Escribe una


consulta que muestre:
Name (Nombre del Pas),Cardcode(Cdigo de
cliente),Cardname (Nombre del cliente). Debes listar
todos los pases.
Utiliza RIGHT JOIN. Donde Cardtype (tipo de socio) es igual a C.
Ordenar por pas.
GROUP BY

SELECT T1.campo1, T1.campo2


FROM Tabla2 T1
GROUP BY T1.campo1, T1.campo2
GROUP BY Y SUM()

SELECT T1.campo1, T1.campo2, T1.campo3, SUM(T1.campo4),


SUM(T1.campo4 * T1.campo5)
FROM tabla1 T0 INNER JOIN tabla2 T1
ON T0.campo2 = T1.campo2
GROUP BY T1.campo1, T1.campo2, T1.campo3
GROUP BY Y COUNT ()

SELECT T0.campo1, COUNT (T1.campo2)


FROM Tabla1 T0 INNER JOIN tabla2 T1
ON T0.campo1 = T1.campo2
GROUP BY T1.campo1
GROUP BY, MAX() y MIN()

SELECT T0.campo1, MAX (T1.campo2), MIN (T1.Campo2)


FROM Tabla1 T0 INNER JOIN tabla2 T1
ON T0.campo1 = T1.campo2
GROUP BY T1.campo1
GROUP BY Y HAVING

SELECT T0.campo1, T0.campo2


FROM Tabla1 T0 INNER JOIN tabla2 T1
ON T0.campo1 = T1.campo2
GROUP BY T0.campo1, T0.campo2
HAVING SUM(T1.campo3) <= 0

Puedes utilizar, COUNT (), MAX MIN()


Prctica #2

De la tabla RDR1 escribe una consulta que


muestre:
Itemcode (Cdigo de producto)
Dscription(Descripcin de producto)
Cantidad de veces que se ha listado un
determinado artculo en Pedidos.
Debes contar por el campo Docnum (Nmero
de documento)
Suma de quantity (cantidad).
Suma de precio * cantidad (price*quantity).

Recuerda agrupar por Itemcode y dscription.


RECESO
15 MINUTOS
IS NULL / IS NOT NULL

SELECT campo1, campo2, campo3


FROM tabla
WHERE campo2 IS NULL

SELECT campo1, campo2, campo3


FROM tabla
WHERE campo2 IS NOT NULL
Prctica #3

De la tabla Artculos (OITM) escribe una


consulta que te muestre:
Cdigo de articulo,
Nombre del artculo y
Cdigo de proveedor.
Filtro: Solo los artculos que tengan proveedor.
ISNULL

SELECT Campo1, Campo2, ISNULL (campo3,Puede ser


nmero, smbolos o letras)
FROM Tabla
SubConsultas

SELECT T0.campo1, T0.campo2, (SELECT T1.campo1


FROM Tabla T1 WHERE T1.campo1 >10)
FROM Tabla T0,
WHERE T0.campo2 = Valor

SELECT T0.campo1, T0.campo2,


FROM Tabla T0,
WHERE T0.campo2 = (SELECT T1.campo1 FROM Tabla
T1 WHERE T1.campo1 =10)
ORDER BY T0.campo1
Prctica #4

De la tablas de Entregas (ODLN), las Lneas(DLN1) y


Artculos(OITM)
Docdate (Fecha),
Cardcode(Nombre de Socio)
Itemcode (Cdigo de producto),
Quantity(Cantidad),
Price(Precio),
Precio FOB(Donde el precio en los datos
maestros(OITM) y lista de precio(ITM1) sean iguales y
la lista de precio(ITM1) sea 1)
CASE I Sintaxis

SELECT CASE Campo1 WHEN C THEN Mi texto


WHEN L THEN Otro
ELSE Campo1 END
FROM Tabla EN CASO DE QUE NO INCLUYAS
LA INSTRUCCIN ELSE Y NO
WHEN= CUANDO CONTEMPLES UN
THEN= ENTONCES DETERMINADO VALOR PARA
SER REEMPLAZADO EL
ELSE= SINO RESULTADO SERN VALORES
END= FIN NULL

Se interpreta as: cuando el valor en el campo1 sea C entonces


reemplzalo con el valor: Mi texto, cuando el valor en el campo1
sea L entonces reemplzalo con el valor: Otro; sino es ninguno de
los valores anteriores ,entonces trae el valor que tiene el campo1
y termina de evaluar.
Prctica #5
De la tablas Socio de Negocios (OCRD)
Cardtype (Tipo de socio de negocios)
Cardcode (Cdigo de socio),
Cardname (Nombre socio)
Phone1 (Telfono)
E_mail (Correo electrnico)

Si el campo OCRD.cardtype es igual a


C entonces que muestre el texto: Cliente,
L que muestre el texto : Prospecto,

Si no es C ni L, entonces el texto debe ser: Proveedor.


CASE II Sintaxis

SELECT CASE WHEN Campo1 > 1000 THEN Mi texto


WHEN Campo1 < 1000 THEN Otro texto
ELSE Campo1 END
FROM tabla
Prctica #6
De la tablas Pedido de Cliente (ORDR) y Vendedores (OSLP)
escribe una consulta que muestre:
SlpName (Nombre del vendedor)
Doctotal-Vatsum (Valor Total de Pedidos de cliente)
Condicin
Si el resultado de la operacin ORDR.Doctotal menos
ORDR.VatSum es mayor que 1000, entonces que
muestre el texto: Paga comisin.
Si no es mayor que 1000, entonces que muestre el
texto (No paga comisin).
Utiliza INNER JOIN para relacionar ORDR y OSLP, por medio del
campo Slpcode.
Suma el valor total de pedidos de cliente por vendedor, utiliza
GROUP BY y SUM().
CONVERT

Supongamos que campo1 es un campo que contiene valores numricos.

Convertir un valor numrico a texto


SELECT CONVERT(varchar,campo1) FROM tabla
Varchar : es un tipo de
dato para los valores
Varchar? alfanumricos.
Cada campo de una tabla
se le especifica el tipo de
informacin y la cantidad
de caracteres que puede
almacenar.
Prctica #7

De la tabla de Pedido de Cliente (ORDR) escribe una consulta en


la que:
Une los campos Docnum (Nmero de Documento)
y Cardcode (Cdigo de Cliente) separado por guion -.

Debes utilizar CONVERT.


Funciones Matemticas

FUNCIN DESCRIPCIN
ABS Devuelve el valor absoluto positivo de una expresin numrica
especfica.
CEILING Devuelve el entero ms pequeo mayor o igual que la
expresin numrica especificada.
FLOOR Devuelve el entero ms grande menor o igual que la expresin
numrica especificada
ROUND Devuelve un valor numrico, redondeado a la longitud o
precisin especificadas.
ABS

SELECT ABS(-1.0), ABS(0.0), ABS(1.0)

SELECT ABS(Campo_Numrico) FROM Tabla

Nota:
El resultado siempre ser con signo positivo.
CEILING

SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.0)

124 -123 0

SELECT CEILING(campo_numrico) FROM Tabla


FLOOR

SELECT FLOOR($123.45), FLOOR($-123.45), FLOOR($0.0)

123 -124 0

SELECT FLOOR (Campo_numrico) FROM Tabla


ROUND

SELECT ROUND(123.2527,3), ROUND(123.2527,4), ROUND(123.2527,2)

123.2530 123.2527 123.2500

SELECT ROUND(campo_numrico) FROM Tabla

De 5 A 9 Redondea.
Prctica #8

De la tablas Pedido de Cliente lneas (RDR1)


escribe una consulta que muestre:
Itemcode (Artculo)
Price (Precio)
Price * Quantity (Total)

Al precio aplcale la funcin CEILING y al total ROUND sin


decimales.
Debes sumar (price * quantity) y agrupar articulo y
precio.
Aprendimos que

Es posible realizar un INNER JOIN con ms de un enlace.


Agrupar registros empleando la instruccin GROUP BY y filtrar los datos
agrupados utilizando HAVING..
Sumar y contar registros. Extraer el valor ms alto ms bajo de
campo.(SUM,MAX,MIN,COUNT)
Se puede reemplazar valores NULL empleado ISNULL.
Evitamos recuperar datos con valor NULL aplicando la condicin IS NOT
NULL en el WHERE de una consulta
Es posible convertir un dato numrico a alfanumrico mas no viceversa.
Case es una instruccin que me permite manipular los resultados de una
consulta, cambiando los valores siempre que se cumpla una condicin.
La funcin matemtica ABS siempre me devuelve un valor positivo.
FLOOR,CEILING y ROUND son funciones matemticas para redondear
valores numricos.
Felicidades!

Has culminado el curso avanzado de


TRANSACT SQL