Querys
La siguiente sección ofrecerá
a todos los usuarios chilenos de Horizonte, acceso a enlaces
con información necesaria para mejorar el uso del sistema
y, además, resolver problemas específicos de
la gestión bibliotecaria.
POR MODULOS
>> ADMINISTRACION
O GESTION
>> CATALOGACION
>> CIRCULACION
ESPECIFICOS
>> LISTADO DE LIBROS
POR UNA MATERIA EN ESPECIAL (etiqueta 150)
>> LISTADO DE USUARIOS QUE TIENEN
COPIAS CON MULTAS O PRESTAMO VENCIDO
>> BIB CREADOS Y CAMBIADOS POR ALGUIEN
EN FECHAS DETERMINADAS
>> PRODUCCIÓN POR CATALOGADOR ENTRE
FECHAS DETERMINADAS
ADMINISTRACION O GESTION
- Query que cuenta todos los registros bibliográficos
de una base de datos.
use base_de_datos
go
select count(bib#) from bib
where tag = 0
go
- Query que cuenta los ítemes de una base
de datos.
use base_de_datos
go
select count(item#) from item
go
- Query para seleccionar datos desde la tabla ITEM,
de todos los itemes que estén en la Ubicación
CLC, y los ordena por número de pedido.
use base_de_datos
go
select bib#, item#, ibarcode, call, copy, processed from
item_with_title
where location = 'CLC'
order by call
go
CATALOGACION
- Query para contar todos los registros de Autoridades
en una base de datos.
use base_de_datos
go
select count(auth#) from auth
where tag = 0
go
- Query para contar todos los bibs digitados o catalogados
por la persona de iniciales "aaa". Se requiere que
haya un solo campo para poner esa información (campo
991 u otro campo local).
use base_de_datos
go
select count(bib#) from bib
where tag = 991
and text like "%aaa%"
go
- Query que entrega un listado de números
bib., de registros bibliográficos sin título
(campo 245).
use base_de_datos
go
select bib# from bib
where tag = 008
and bib# not in (select bib# from bib where tag = 245)
go
- Query para obtener un listado de números
bib, de registros bibliográficos sin ítemes
asociados.
use base_de_datos
go
select bib# from bib
where bib# not in (select bib# from item)
and tag = 0
go
- Query para saber qué materias temáticas
se han utilizado en una colección determinada.
use biblioteca
go
select distinct a.text, b.bib#, i.item#
from auth a, bib b, item i
where a.auth#=b.auth#
and b.bib#=i.bib#
and a.tag = 150
and i.item# in (select item# from item where location = 'XXXX')
order by a.text
go
Este query permite obtener un listado alfabético
de todas las materias (campos 150 - 650) temáticas,
que han sido usadas en los bibs pertenecientes a una ubicación
dada.
Esto es muy útil en casos de catalogación descentralizada.
Podría cambiarse donde dice:
... where location = 'XXXX'
por:
... where collection = 'CG'
- Query que cuenta los ítemes (volúmenes)
que existen en una base de datos, en base a la materia, es
decir, usando los caracteres del campo 082 que corresponden
al número Dewey del registro bibliográfico.
use biblioteca
go
select count(item#) from item
where bib# in (select bib# from bib
where tag = 082 and substring(text,2,3) like "%72%")
go
En el ejemplo, se usan los caracteres o
posiciones 2 y 3 para contar todos los itemes cuyos bibs tengan
72X al inicio del Dewey.
En el mismo ejemplo, si se quisieran contar
los ítemes bajo 729 se debe cambiar donde dice "substring"
a (text,2,4).
¿Por qué se parte de la posición
o caracter 2?
Porque la posición o caracter 1 está ocupada
por el código del subcampo.
CIRCULACION
- Query que entrega un listado alfabético por
nombre, de todos los usuarios que deben multas a la Biblioteca.
Se refiere sólo a las multas en dinero.
use base_de_datos
go
select borrower.name, borrower.second_id, burb.amount
from borrower, burb
where burb.amount > 1
and borrower.borrower#=burb.borrower#
order by borrower.name
go
- Query que permite obtener un listado de los ítemes
más prestados de una Base de Datos (no se especifica
coleccion ni ubicación), en base al criterio de seleccionar
todos los ítemes con más de 130 préstamos.
use biblioteca
go
select substring(b.text,2,60),substring(a.text,2,40),i.n_ckos,
i.copy
from fullbib a, fullbib b, item i
where a.bib# = b.bib# and b.bib# = i.bib#
and a.tag = 100 and b.tag = 245
and i.n_ckos > 130
order by i.n_ckos desc
go
La segunda razón de importancia es
que permite obtener AUTOR y TITULO, es decir, mezclar información
de autoridades y de los campos bibliográficos propiamente
tales. Al especificarse el campo 100 deja fuera a los ítemes
cuyos bibs. tienen un campo 110, 111, o 130.
Query que
entrega el listado de libros por una materia en especial (etiqueta
150)
miércoles, diciembre 28, 2005
SELECT A.AUTH#, B.BIB#, SUBSTRING(A.TEXT,2,25),
SUBSTRING(B.TEXT,2,75)
FROM AUTH A, BIB B, BIB_AUTH C
WHERE A.TAG=150
AND B.TAG=245
AND A.TEXT LIKE "%SOCIOLOG%"
AND A.AUTH#=C.AUTH#
AND C.BIB#=B.BIB#
ORDER BY A.TEXT
LISTADO
DE USUARIOS QUE TIENEN COPIAS CON MULTAS O PRESTAMO VENCIDO
(el detalle de la fecha de vencimiento , viene incluido)
Recomendaciones:
Lo que hará en un prinicpio es crear
una tabla temporal.
Antes de ejecutar el siguiente Qry, asegúrese de tener
claras las condicionantes.
Tipo de Usuario: académico, estudiante regular, alumno
tesista , etc.
Tipo de bloqueo : Multas (fine) y Préstamos vencidos
(od).
Ubicación: Biblioteca periférica a la cual se
aplicará .
------------------------------------------------------------------------------------------------
SELECT A.BORROWER#,SUBSTRING(NAME,1,30)
NOMBRE," " FONO_HP,
" " FONO_C," " FONO_H,
SUBSTRING(ADDRESS1,1,45) RESIDENCIA,
SUBSTRING(ADDRESS2,1,45) PROCEDENCIA,SUBSTRING(ADDRESS3,1,30)
CARRERA,LOCATION,
ITEM#,BLOCK,AMOUNT, BTYPE
INTO #TEMP
FROM BURB A,BORROWER B,BORROWER_ADDRESS C,BORROWER_PHONE D
WHERE BLOCK IN ("OD")
AND BTYPE="FUN"
AND LOCATION="biss"
AND A.BORROWER# = B.BORROWER#
AND A.BORROWER# = C.BORROWER#
AND A.BORROWER# = D.BORROWER#
ORDER BY BLOCK
UPDATE #TEMP SET FONO_hp = PHONE_NO
FROM #TEMP A,BORROWER_PHONE B
WHERE A.BORROWER# = B.BORROWER#
AND phone_type = "hp"
UPDATE #TEMP SET FONO_C = PHONE_NO
FROM #TEMP A,BORROWER_PHONE B
WHERE A.BORROWER# = B.BORROWER#
AND phone_type = "c"
UPDATE #TEMP SET FONO_H = PHONE_NO
FROM #TEMP A,BORROWER_PHONE B
WHERE A.BORROWER# = B.BORROWER#
AND phone_type = "h"
SELECT A.*,SUBSTRING(TEXT,3,68) TITULO, COPY, COLLECTION,
DUE_DATE,
DATEADD(DD, due_date, "1/1/1970")
FROM #TEMP A,ITEM B,BIB C
WHERE A.ITEM# = B.ITEM#
AND B.BIB# = C.BIB#
AND TAG = 245
AND due_date BETWEEN DATEDIFF(DD,"01/01/1970","01/01/1996")
AND DATEDIFF(DD,"01/01/1970", "12/31/2002")
SELECT COUNT(*) FROM #TEMP
DROP TABLE #TEMP
IMPORTANTE:
EN CASO DE NO EJECUTAR EL QRY COMPLETO(por alguna razón)
REINICIE SESIÓN.
La fecha DUE_DATE que escriba, será determinada por
las fechas en que requiera el listado de usuarios morosos.
En este caso son desde los inicios 01/01/1996 a la fecha 31/12/2002.
BIB CREADOS Y CAMBIADOS
POR ALGUIEN EN FECHAS DETERMINADAS
Importante: Los siguientes Qrys están
probados en la versión 5.3 de horizonte , no en anteriores.
select bib#, create_user, /*create_date,*/ change_user, /*change_date,*/
dateadd(dd,create_date, "1/1/1970"), dateadd(dd,change_date,
"1/1/1970")
from bib_control
where create_date between datediff(DD,"01/01/1970","01/01/2002")
AND DATEDIFF(DD,"01/01/1970", "12/31/2002")
and change_date between datediff(DD,"01/01/1970","01/01/2002")
AND DATEDIFF(DD,"01/01/1970", "12/31/2002")
go
PRODUCCIÓN POR CATALOGADOR
ENTRE FECHAS DETERMINADAS
select bib#, text
from bib
where tag=245
and bib# in(select bib# from bib where tag=008
and substring(text,1,6) between "030101" and "031020")
and bib# in(select bib# from bib where tag=940
and text like "%ald%")
go
Nota: Si el Qry entrega un valor "0",
intentar ejecutarlo cambiando el tag=940, por el tag correspondiente
que define las iniciales del catalogador en su base de datos.
|