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 Yoni Hamed Apellido Sawransky Pealba Acevedo Direccin El Dorado Las Cumbres Bethania Telfono 300-0000 300-0011 300-0022

FILAS = REGISTROS

Maria Luisa

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


UFC Op44

Nombre
UFC,S.A. Oportunity,S.A.

Nombre Extranjero
Universal Football Club Oportunidad,S.A.

R.U.C.
8-55-565-656-56 8-796-425-4485

Estructura del Analizador de Consultas


Verificar la consulta
Ejecutar 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 Recuperar?

De dnde?

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.
2. 3.

Todas los campos de la tabla OITM (Artculos).


El primer campo de la tabla OITM. 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 ambas condiciones: Todos los valores en el campo2 sern igual A y en el campo4 igual a B

AB

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. Tambin, en el campo4 valores B sin 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, ATI, 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

+ Aritmticos * / %

Suma Resta 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 LEFT

DESCRIPCIN 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.
Devuelve datos de tipo carcter obtenidos a partir de datos numricos. Devuelve la parte de una cadena de caracteres que comienza en el nmero de caracteres especificado en expresinEntera a partir de la derecha.

STR RIGHT

FUNCIN LEFT
SELECT LEFT(expresinCarcter, expresinEntera) SELECT cardname, LEFT(cardname,5) as LEFT FROM OCRD

CardName REYES TRADING COMP.

LEFT REYES

FUNCIN LEN
SELECT LEN(expresinCadena) SELECT cardname, LEN(cardname) as LEN FROM OCRD

CardName REYES TRADING COMP.

LEN 19

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

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


Doctotal 2452.680000 828.500001 STR 2452.68 828.50

FUNCIN RIGHT
SELECT RIGHT(expresinCarcter, expresinEntera) SELECT cardname, RIGHT(cardname,5) as RIGHT FROM OCRD

CardName REYES TRADING COMP.

RIGHT 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 CONTEMPLES UN WHEN= CUANDO DETERMINADO VALOR PARA THEN= ENTONCES 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 alfanumricos. Cada campo de una tabla se le especifica el tipo de informacin y la cantidad de caracteres que puede almacenar.

Varchar?

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
ABS CEILING FLOOR ROUND

DESCRIPCIN
Devuelve el valor absoluto positivo de una expresin numrica especfica. Devuelve el entero ms pequeo mayor o igual que la expresin numrica especificada. Devuelve el entero ms grande menor o igual que la expresin numrica especificada 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

SELECT CEILING(campo_numrico) FROM Tabla

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

123

-124

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

S-ar putea să vă placă și