►
From YouTube: Basic SQL for Koha Users
A
Close
so
welcome
to
our
basics:
SQL
for
kohai
user's
session.
My
name
is
Jason
Robb
I
am
the
sea
confine
Cordner
coordinator
at
the
southeast,
Kansas
Library
System.
We
have
a
consortium
of
47
libraries
that
have
been
on
koha.
We
started
in
2008,
so
been
doing
it
for
a
little
while
still
learning
lots
of
things
and
I
will
disclaim
that
I
am
mostly
self-taught
on
sequels.
So
if
I
can
do
it,
you
can
do
it
right.
B
I'm
Christopher
Brannan
I'm,
the
IT
coordinator
for
the
Cortland
Public
Library
and
I
head
up
the
support
team
for
our
consortium,
the
cooperative
information
network
Idaho
in
Washington
and
we
joined
in
2012
and
I
am
self-taught
as
well.
So
you
got
a
couple
self-taught
people
here,
trying
to
teach
the
rest
yet,
but
I
hope
that
you'll
get
a
lot
out
of
this
and
we'll
try
to
answer
questions
as
we
go
or
towards
the
end.
B
A
And
yeah
we'll
try
and
take
questions
at
the
end,
but
feel
free
to
use
the
chat
and
type
in
questions,
and
we
can
pick
some
up
as
we
go
too.
If
anything
is
confusing,
so
to
get
started.
What
is
sequel?
Sql
stands
for
structured,
query,
language
and
it's
it's
a
language
used
to.
Let
us
talk
to
the
data
that
think
Oh.
It
uses
relational
databases,
which
means
we.
A
A
So,
if
you're
trying
to
pull
something
off,
and
you
need
to
Google
something
like
how
to
do
something,
you
can
add
my
sequel
to
your
search
to
get
something
more
in.
There
gets
to
get
some
better
results
or
more
direct
results,
and
another
important
thing
to
know
as
a
beginner
is
that
queries
from
called
the
kaha
staff
client
are
read-only
you're,
not
going
to
do
any
damage.
You're.
Just
looking
at
stuff
you're
pulling
data
to
see,
there's
no
way
to
update
your
records
from
the
staff
client.
You
have
to
have
wizards.
A
A
So
if
you're,
if
you're
trying
to
write
a
report,
it's
always
also
good
to
go
to
the
library
to
see
not
only
if
there's
a
report
there
that
you
can
use,
but
one
that
maybe
you
can
modify
and
adjust
or
use
so
I
said
the
word
schema
schema.
The
schema
are
basically
just
a
list
of
all
the
tables
in
koha
and
that's
kind
of
your
road
map.
A
When
you're
writing
a
report,
you
can
access
the
schema,
as
I
said
from
the
sidebar
when,
when
you're
in
the
reports
section
of
Koha
and
the
scheme
are
broken
down
into
tables
and
then
fields.
So
when
you
first
get
there,
you'll
you'll
see
your
list
of
tables
you
can
search
through
it.
There's
a
search
bar
on
the
top
right
to
kind
of
narrow
your
results
and
then
you'll
pick
the
table.
A
You
think
you
need
click
into
it
and
then
you
can
see
a
list
of
different
fields
in
the
tables,
and
so
you
kind
of
want
to
just
think
of
this
like
a
spreadsheet.
So
your
table
is
a
big
spreadsheet.
The
fields
are
your
column
headings
and
then
the
rows
within
the
table
are
your
data.
So
your
your
bar
codes
are
in
one
column,.
B
A
Bib
we
are
gonna
call
and
that
kind
of
thing
I
put
the
screenshot
here
to
kind
of
illustrate
keys
and
again
we
talked
about
relational
databases,
so
the
different
tables
are
related
to
each
other
and
the
keys
are
what
ties
them
together.
So
you
can
see
on
this
screenshot
we're
Biblio
number
ties
items
to
the
Biblio
table
and
we'll
get
into
how
you
join
those
things
together
with
keywords
in
a
little
bit,
so
the
the
screenshot
I
took
is
from
the
schema.
A
Usually
when
you
click
into
a
table,
it'll
give
you
like
a
table
full
of
the
different
fields,
but
if
you
scroll
down,
then
you
can
actually
see
the
visual
connections
between
the
different
tables.
You
can
see
that
off
to
the
right
of
items.
It
connects
to
like
a
whole
table
of
things,
so
it's
good
to
kind
of
use
that
as
your
roadmap
as
you're,
trying
to
connect
things
together
and
then
I
just
listed
out
a
few
of
the
most
used
tables.
A
When
you
start
out,
these
are
the
ones
you're
probably
going
to
be
looking
at
the
most
so
for
patron
information,
you're,
getting
it
from
borrowers
for
finds
information
you're,
getting
it
from
account
lines
for
circulation
information,
you
get
it
from
Statistics
item
data
comes
from
items,
bibliographic
data
comes
from,
Biblio
holds
from
reserves
and
transfers.
It
comes
from
branch
transfers
if
you're
like
me
and
a
consortium,
and
you
need
to
court
query
transfers
between
libraries.
That's
where
you
go.
I'll
also
note
that
there
are
deleted
tables
as
well,
so
like
deleted
items
deleted
Biblio.
A
B
A
And
we'll
also
show
you
how
to
get
there
easily
from
the
report
screen.
A
little
later
on.
I
also
noted
to
your
tables
to
avoid
at
least
at
first
our
action
logs,
because
they're,
huge
and
scary
and
nasty,
and
it's
hard
to
connect
things
correctly
and
usually
anything
you
can
get
from
action
logs.
It's
a
little
more
in-depth.
So
for
us
basic
Koha,
sequel,
heirs,
we're
gonna
avoid
that
one
for
now
circulation,
stats
from
Statistics
can
also
be
really
slow
in
a
big
system.
So
that's
something
else
to.
B
A
Aware
of
I've
I,
don't
think
I've
ever
crashed
our
Kohath
running
a
sequel
report,
but
I
have
gotten
in
the
habit
of
running
testing
things
on
a
test
server
rather
than
production,
because
it's
kind
of
scary,
sometimes
I've,
crashed.
Yours
I
think
that
we
might
have
some
sort
of
proxy
in
place
now
that,
like
times
them
out
I,
don't
know
how
that
works.
Maybe
by
water
people
can
chime
in
alright.
A
So
basic
keywords,
so
keywords
are
what
you
use
to
kind
of
talk
to
the
data
so
for
for
picking
fields.
You're
gonna,
select,
you're,
gonna
select
a
field
from
a
table,
so
from
is
when
you're
picking
the
table
joining
lets.
You
add
more
than
one
table
together
and
then,
of
course,
you
can
select
from
multiple
tables
at
once,
you'll
use,
where
and
and
to
filter
your
data.
A
So
if
you
want
to
narrow
it
down
to
a
certain
branch
or
a
certain
item,
type
that
kind
of
thing
and
then
order
by
used
for
sorting
data,
so
those
are
just
kind
of
the
basic
ones.
There's
a
lot
more
keywords
we'll
go
into
a
few
more
later
on,
but
to
get
started.
These
are
what
you
need
to
write
a
basic
report
so
now
you're
kind
of
you've
kind
of
got
all
the
building
blocks.
You've
got
the
key
words
to
pick
your
fields.
A
A
A
You
want
to
kind
of
think
about
what
your
end
result
is.
First,
when
you're
coming
up
with
a
report
and
think
about
how
you
want
it
to
look
before
you
ever
get
started,
and
then
once
you
have
that
in
mind,
you
want
to
start
thinking
about
looking
at
the
different
tables,
seeing
where
you
can
get
that
data
pulled
from
most
efficiently.
So
if
you
want
a
barcode,
you're
definitely
gonna
have
to
use
items.
If
you
want
a
title,
you'll
probably
want
to
use
Biblio,
but
you
could
also
pull
it
from
the
mark
data.
A
If
you
need
it
to.
If
you
need
a
subtitle,
then
you're
gonna
have
to
pull
that
from
the
mark
data,
so
just
kind
of
thinking
about
which
tables
are
necessary
and
which
ones
you
can
pass
over
starting
out
broad
and
narrowing
one
and
I
like
to
like
this
is
probably
maybe
just
my
process
but
I
like
to
start
big
and
then
narrow
down
so
like
I'll.
A
Do
is
select
all
from
the
table
and
then
I'll
add
my
where
statements
a
little
at
a
time
filtered
down
to
my
which
fields
I
want
so
like
kind
of
hone.
In
exactly
on
what
I
want
and
then
the
fourth
step
I
usually
do
is
adding
more
usability,
so
I
like
to
add
links
to
reports,
I
like
to
add
limits
to
reports,
because
that
makes
everything
show
on
one
screen.
Sometimes
that's
helpful,
you
can
add
the
order
by
statement
after
you've
got
your
data
kind
of
looking
at
how
you
want
it.
A
B
Answer
to
reiterate
Heather's
question:
she
asked
if
case
matters.
The
case
is
really
for
readability.
You'll
notice
that,
even
when
you
go
through
the
sequel
library,
you
know
things
are
done
differently
from
person
to
person
that
has
added.
You
can
have
everything
on
one
line
and
all
in
lowercase
or
all
in
uppercase
doesn't
make
a
whole
lot
of
difference.
It's
just
about
readability
and
making
it
easier
for
people
to
understand.
So
it's
it's
more
of
a
user
friendly
being
able
to
scan
through
it
thing.
B
So
you
know
you
use
the
we
tried
it
would
try
to
stay
consistent,
I,
try
to
stay
consistent
when
I'm
writing
reports
so
that
people
can
easily
read
it
line
by
line
and
figure
out.
What's
where,
but
sometimes
you
know,
some
of
the
more
complicated
reports
are
harder
to
dig
through
all
right
building
a
basic
query.
So
to
build
a
query,
a
query
is
basically,
you
know.
You're,
just
questioning
a
table
or
database
for
information
and
basic
query
requires
at
least
two
pieces
select
and
from
the.
B
B
A
As
everybody
think,
oh
now,
yeah.
B
A
So
this
is
my
test
server
where
dreams
go
to
die
its
graveyards
stuff,
so
just
to
get
started
and
to
point
out
some
of
these
things
that
we've
talked
about
when
you
always
want
to
go
to
reports
when
you're
gonna
write
your
own
report,
you're
gonna,
do
you
saved
or
create
from
sequel
I
always
go
to
use
saved?
It's
just
a
habit,
mostly
because
I
want
to
check
and
see.
A
If
I
have
a
report
before
I
go
in
and
start
writing
a
new
win,
so
I'll
search
the
reports,
library
and
the
schema
are
linked
over
here
on
the
left.
So
I
can
click
right
there.
If
I'm
thinking
about
a
report,
scroll
down
through
I,
will
note
that
this
has
been
broken
up
a
little
bit
and
not
threw
me
off
a
few
few
times
at
when
I
was
looking
for
a
hold
report.
I
would
do
like
a
control
F
on.
A
It
and
then
realize
oh
wait.
I
need
to
go
over
to
the
holds
section
for
that,
and
then
the
schema,
as
we
talked
about,
is
here.
It's
broken
down
by
version
most
of
us
around
1905
right
now,
so
you
just
pick
whichever
version
you're
on
and
then
you
you
have
your
search
over
there.
So
if
I
want
to
get
to
the
items
you
I
can
hit
that
birds.
A
Yep
and
then
it
lists
all
my
fields
and
if
I
scroll
all
the
way
down,
you
can
see
those
relational
tables
that
I
was
talking
about
earlier,
so
just
touch
on
those
now.
My
test
server
has
lots
of
questionable
data,
we'll
see
what
we
can
pull.
So
if
we
just
want
to
do
a
dump,
you
always
have
to
give
it
a
name.
So,
let's.
A
A
B
A
B
B
B
B
A
B
So
you
can
tap
into
those
predefined
sections
so
that
you
just
get
a
drop-down
and
you
can
select
what
you
want.
You
can
also
combine
your
your
filters,
your
wares,
so
you
can
separate
them
with
ands
and
use
combinations,
so
maybe
you're
looking
for
four
items
that
are
in
a
specific
collection,
so
you
can
narrow
it
down
by
several
pieces
of
criteria
next
slide.
B
So
we're
going
to
start
off
by
talking
about
those
parameters
and
I
was
inspired
on
my
screen
here.
Jason
usually
likes
to
include
things.
The
Sharks
I
like
to
throw
em
eat
the
alligators
here.
So
so,
parameters
are
formatted
with
the
hungry
alligator,
so
the
less
than
the
two
less
stands
and
the
two
greater
than
symbols.
So
we
put
our
parameters
there.
The
parameters
are
basically
our
filters.
Well,
you
know
the
things
that
we
want
to
put
in
the
where
clause
so
that
we
can
tell
it
what
to
narrow
it
down
by.
B
B
If
your
label
always
goes
first
inside
the
hungry,
alligators,
so
choose
libraries
label
and
then
I
have
the
pipe
and
then
branches
is
the
parameter
that
that
we're
using
in
this
case
it's
the
the
value
that
we
are
going
to
access
that
is
selectable,
meaning
it's
it's
a
predefined
set
of
parameters
that
we
can
select
from,
rather
than
something
that
we
have
to
type
in.
So
you
can
have.
B
You
can
have
parameters
that
you
can
you
can
type
in,
but
you
can
also
have
parameters
that
are
selectable
and
you
can
use
several
things
for
your
selectable
parameters,
such
as
any
authorized
value.
That
was
the
worker
that
was
filling
for
earlier.
It
just
left
my
brain
authorized
value
list,
so
anything
from
the
authorized
value
list
you
can
use
as
a
parameter.
You
can
use
your
library
branches
with
the
word
branches.
So
in
my
example
up
above
that
the
choose
library,
I
used
branches
there,
you
can
use
shelf
location.
The
loc
item
types.
B
You
can
use
collection
codes
lost,
not
for
loan,
which
is
not
underscore
loan
withdrawn
status,
damaged
your
category
code
and
a
special
one
is
date
which
gives
you
a
pop-up
calendar.
That
was
a
great
addition
when
they
added
that,
because
dates
are
tricky
because
you
have
to
enter
them
a
specific
way.
You
always
have
to
have
the
year
first
and
you
have
to
have
hyphens,
not
slashes,
so
having
the
pop-up
calendar
really
reduced
the
amount
of
errors
in
zero
results
when
you're
doing
a
a
query
with
with
dates
all
right.
B
Next
slide,
you
can
join
tables,
you
can
add
other
tables
together,
so
that
you're
not
depending
on
just
one
table
I
mean
sometimes
you
want
to.
You
want
to
do
searches
for
items,
but
if
you
look
at
the
with
a
schema,
you'll
know
that
if
you
access
the
items
table,
it
has
no
titles
and
it
has
no
authors,
and
so
sometimes
it's
important
to
be
able
to
join
in
other
tables
to
get
the
rest
of
that
information.
B
We
borrowed
this
table.
I.
Think
Nick
used
this
table
before
this
is
out
on
the
Internet.
These
are
all
the
different
kinds
of
sequel
joins
on
the
right:
there's
just
a
basic
join
but
there's
a
left
join.
There's
a
right
join,
there's
full
outer
join,
there's
inner
joins
lots
of
different
joins,
but
the
one
that
I
use
the
most
is
the
left
join.
So
that's
down
below
my
list
here.
B
I
blew
that
that
one
up
for
you,
I
used
left
join
almost
exclusively,
but
you
can
use
other
joins,
but
this
one
is
the
one
that's
going
to
be
useful,
the
most
and
talked
about
joining
items
with
another
table
so
that
you
can
get
the
titles
and
authors.
Titles
and
authors
are
in
the
the
biblio,
and
so
you
would
join
the
biblio
and
items
together.
B
Normally
when
you
do
a
search,
you
know
you
primarily
think
of
the
bulk
of
your
information
where's,
the
bulk
of
your
information
coming
from
and
so
I
you
know,
I
I
would
do
a
query
starting
off
with
the
items
and
then
I
would
join
the
Biblio
stew
that
looking
at
this
diagram
you'll
see
that
your
you've,
your
a
and
your
B.
Those
are
two
different
tables
that
you're
joining
together
and
a
is
going
to
be
your
primary
table
and
B
is
what
you're
joining
on
it's
important
to
think
about.
B
Your
primary
table,
a
is
gonna,
have
everything
that
that
you
are
searching
and
B
may
or
may
not
have
linked
items,
meaning
there
may
be
information
that
that
links
to
what's
in
a
there
may
not
be
so.
That's
why
we
use
that
left
joint,
because
a
you're
always
gonna
have
the
results,
all
the
results
from
your
a
table
and
you
may
or
may
not
have
stuff
that
is
included
from
B.
Just
whether
or
not
any
information
is
linked
in
that
B
table.
A
good
example
is
authorized
values
you
may
have.
B
You
may
have
all
your
items
come
up
in
your
query,
but
you
may
not
necessarily
have
a
withdrawn
on
everything
or
a
lost
status
on
all
those
items.
So,
if
you're
joining
a
lost,
if
you're
drawing
a
status
to
those
items,
you
still
want
to
see
all
your
items.
You
may
want
to
see
all
your
items
and
you
want
to
see
any
statuses
that
are
linked
to
those,
but
you
might
not
have
a
status
linked
to
every
single
item
on
there.
So
a
left
joint
is
very
important
for
that.
B
A
Just
hope
you
questions
go
faster.
Cheryl
asks
why
it
says
table
a
a
so,
and
you
can
see
it
here
in
the
example
as
well
as
statistics
as
that's
an
alias.
So
basically
it's
just
a
way
to
abbreviate
the
table,
so
you
don't
have
to
type
it
out
every
time
you
use
it.
So
you
can
see
the
S
dot
de
time
instead
of
typing
out
a
statistics
date
time.
That's
why
they
did
that
and
George
and
we'll
talk
about
that.
A
little
more.
We
have
some
more
not
later.
B
B
So,
if
like,
for
example,
if
I
was
doing
an
item,
if
I
was
doing
an
item,
table
and
I
was
joining,
statuses,
I
would
only
get
results
if
there
you
know
like
if
I
was
joining
with
a
los
gatos,
if
I
was
only
looking
for
items
that
had
lost
statuses,
that
would
be
perfect,
but
I
would
not
get
results
on
every
single
item.
I
would
only
get
the
items
that
had
an
actual
link
to
a
lost
status
in
that
other
table.
B
All
right,
so
we
have
an
example.
Here
we
used
a
select
statement,
were
doing
account
and
we'll
talk
about
counts
later,
but
we're
basically
counting
our
date
times
from
the
statistics
tables.
So
we're
using
this
statistics
table
and
we
did
use
an
alias
here
s,
so
we
don't
have
to
type
forward
statistics
when
we're
referring
to
that,
and
you
know
why.
Why
do
we
we
put
that
in
there?
B
Why
is
there
like
an
s
date/time,
because
sometimes
when
we're
using
multiple
tables,
they
have
the
same
field
name,
and
so
it's
important
to
clarify
which,
which
table
we're
pulling
that
field
from
and
can
all
that's
pretty
pretty
good
about.
It
will
tell
you
if
you
don't
use
that
alias
or
that
that
table
name
in
front
of
the
field.
It'll
tell
you
tell
you
that
it's
ambiguous,
you
know
it
doesn't
know
which
table
you're
pulling
it
from
so
we're.
You
were
pulling
account
from
a
date/time
we're
in
the
statistics
table.
B
B
Here
we
used
using
because
I'm
only
using
we're
only
hit,
we
only
have
two
tables
and
they
both
have
the
same
field,
so
we
can
use
the
the
term
using
to
connect
the
two
tables.
They
both
have
the
field
item
number,
and
so
we're
saying
using
item
number
of
me
always
put
what
we're
using
in
the
parenthesis
there
now
there's
another
way
to
connect
the
tables
we'll
go
to
the
next
slide
here.
This
is
using
on
this.
This
is
a
join
with
a
left
join
with
on
instead
of
using
in
this
case.
This
is
this.
B
Is
you
know
this
is
a
long
way
of
doing
it.
We
could
use
the
the
keyword
on
and
say
the
s
item
number
equals.
The
I
item
number
using
is
the
better
method
to
do
it,
because
the
fields
are
the
same
and
we're
only
using
two
tables.
If
I
was
using
more
tables
or
if
I
was
using
two
tables
that
the
field
was
not
the
exact
same
spelling
or
the
same
word,
then
on
is
the
way
you
want
to
go,
so
you
can
link
those
two
items
together.
B
A
Right
so
you
don't
have
to
join
things
using
keys.
Usually
you
will
use
the
keys
to
join
things
together,
but,
as
nick
says,
if
the
column
names
match
exactly,
then
you
can
still
join
the
tables
together,
even
if
they're
not
a
declared
key
and
like
even
if
it
doesn't
have
a
little
key
symbol
in
the
schema.
If
the
data
match
is
it
can
be
joined.
B
Next
slide,
organizing,
let's
see
here,
make
sure
I'm
not
okay.
So
when
you
get
results,
usually
it's
in
the
order
that
I'm
making
this
assumption
it's
even
the
order
of
your
primary
table
and
the
order
that
it's
entered
in
the
table.
I
don't
know
if
there
is
any
defaults
ordering
that
plays
outside
of
the
order
that
it's
actually
in
the
table.
The
ordering
allows
you
to
organize
that
information
so
that
you
know,
for
example,
if
you're
doing
things
by
date
or
bias
or
sequence.
You
want
to
get
that
in
ascending
or
descending
order.
B
B
B
So
when
you
do
order
its
order,
biased
is
the
keyword
that
you're
using
there
I
select
the
the
field
that
I
want
to
use,
which
is
from
the
table,
B
dot
in
the
field
branch
code
and
then
a
space
and
then
I
put
a
SC
for
ascending
or
I
could
put
de
SC
for
descending.
If
I
wanted
to
go
in
reverse
order,
let's
go
to
the
next
slide,
so
that
was
a
single
order.
If
I'm
gonna
do
multiple
there
they're
a
few
ways,
I
could
do
this.
B
This
example
I
am
listing
several
fields
that
I'm
going
to
organize
by
and
then
I
organized
down
by
priority.
So
it's
going
to
organize
first
by
branch
code,
I
separate
these
with
commas,
then
it's
gonna
within
those
branch
codes
it's
going
to
organize
by
surname
and
then
another
comma,
and
then
it's
going
to
organize
within
the
surname.
For
the
first
name
and
at
the
end
you
know
notice,
I
didn't
put
a
comma
here.
It's
a
space.
I
tell
how
these
are
all
going
to
be
organized
I'm
doing
them
all
the
same.
B
So
I
only
have
to
tell
it
this
once,
which
is
ascending.
So
every
one
of
these
is
going
to
be
organized
ascending.
Let's
go
to
the
next
slide.
Now
here's
an
example
where
I
might
not
want
them
all
organized
the
same
way.
So
I
can
before
I,
do
the
comma
for
the
next
field.
I
can
list
how
I
want
to
organize
something
differently,
so
the
branch
code
I
want
to
organize
descending,
but
the
surname
and
the
first
name
I
do
want
to
them
organized
ascending.
B
So
we
have
a
question:
do
you
still
need
to
use
the
be
surname
when
you're
only
pulling
from
a
single
table?
Couldn't
you
just
say
surname,
it
would
put
yes,
yes,
we
don't
have
to
necessarily
put
the
the
table
reference
on
these
I
like
to
do
it
by
default,
because
you
never
know
when
you're
going
to
copy
this
and
modify
it
or
just
you
know,
make
this
more
complicated
or
add
in
more
tables.
A
Okay,
so
a
few
useful
tactics,
we've
already
talked
about
aliases
a
little
bit
so,
as
we
said,
it's
it's
more
just
to
make
it
more
readable
and
more
scalable
really,
and
you
can
name
them
anything.
You
want.
The
the
common
conventions
are
just
using
the
first
letter,
but
I
like
use
P
for
borrowers,
because
I've,
usually
using
B
for
biblio,
so
P
for
borrowers
P
for
patrons
that
kind
of
thing.
A
So
another
important
thing
to
realize
is
that
you're
gonna
copy
a
report
from
the
wiki
or
something
and
it's
gonna
have
these
kinds
of
things
in
it.
So
even
if
you
don't
want
to
use
aliases,
you
still
need
to
know
that
that's
what
it
means.
Another
thing
you
can
do
with
a
leases
is
which
took
me
like
years
to
like
figure
out
I
didn't
realize
you
could
do
this.
Is
you
can
join
the
same
table
multiple
times
by
referencing
the
table
with
different
names,
so
authorized
values?
A
If
I
do
a
v1,
a
v2,
a
v3,
then
I
can
I
can
I
can
join
a
v1
on
collection
code
and
then
I
can
join
a
v2
on
shelf
location
and
a
v3
on
item
type
so
or
not.
Really,
item
type,
that's
a
different
beast,
but
that
way
I
can
get
a
cleaner
result,
because
when
you
just
pull
in
an
authorized
value,
it's
going
to
be
the
actual
value
that
you
put
in
and
not
the
description.
A
So
yeah,
that's
just
a
handy
little
trick.
We
also
talked
about
date
filters
here.
So
if
you're
doing
a
date,
you
can
do
it
between
statements.
So
between
date,
pipe
with
the
little
date,
keyword
and
and
pipe
debate
keyword
it'll
look
cleaner
when
you
run
the
report
than
it
does
here,
because
it's
kind
of
confusing
because
you're
using
keywords
and
key
words
next
to
each
other.
A
B
B
A
B
A
B
A
Yeah,
here's
just
an
example
of
between
and
that's
a
little
clearer,
the
way
that
Christopher
has
this
one
right
now,
where
the
the
text
here,
where
it
says
between
your
year
month
month
day
day,
is
what
you're
gonna
see
when
you
run
the
report
and
then
the
pipe
date
makes
it
use
the
pop-up
calendar
and
then
you'll
get
another,
and
then
you
and
so
you're
doing
your
date
range
there.
So
between
this
date
and
this
date.
A
B
Cat
WS
and
can
cat
the
Kennecott
WS
the
first
example
on
there
mashers
things
up,
but
it
gives
you
the
option
of
a
separator.
So
in
this
case
the
the
surname
and
the
first
name
are
in
this
can
catch.
So
we
we
saved
keyword,
can
cat
underscore
WS
and,
in
parentheses
we
put
in
our
the
parameter,
scored
that
concatenation.
So
the
first
thing
in
quotes
is
the
comma
and
space
of
the
drama
and
space.
B
That's
what
we're
defining
as
our
separator
for
the
things
that
are
being
mashed
up
together
here
and
then,
after
that,
a
comma.
Then
we
start
listing
the
things
separated
by
commas
that
are
going
to
be
added
together.
So
in
this
case
the
field
surname
and
then
the
first
name
so
they're
going
to
be
added
together
in
that
order
and
they're
going
to
be
separated
by
the
comma
and
the
space.
B
The
next
one-
oh
excuse
me
after
after
that,
so
after
we
close
the
parentheses
there,
we
can
list,
as
we
can
say
as-
and
this
is
what
the
field
is
going
to.
The
field
header
is
going
to
show
up
as
it'll
show
it
as
patron.
So
the
surname
comma
space
first
name
is
going
to
show
up
under
the
column
that
says
patron.
So
if
we
didn't
do
that,
the
whole
can
cat
underscore
WS
and
the
rest
of
that
is
going
to
show
up
as
the
header
name
and
that's
pretty
ugly.
B
So
we
want
something
a
little
bit
more
user
friendly
plus
we
can.
We
can
refer
back
to
be
the
title
that
we
give
it
in
different
parts
of
our
report
so
that
we
don't
have
to
keep
referring
back
to
this
whole
mess,
so
patron
just
makes
it
more
user
friendly
for
the
for
the
column,
for
the
end
user
and
for
you
can
cat
is
a
little
similar,
but
you
don't
start
off
with
a
separator
you're,
basically
just
listing
everything
that
you're
going
to
mash
together.
So
on
the
concat
on
this
one.
B
We
we
created
a
link,
and
so
it
starts
off
with
our
HTML
that
refers
to
and
actually
have
my
HTML
on.
There
refers
to
the
borrower,
so
we
can
link
to
the
actual
borrower
in
Koha
from
the
report,
so
this
has.
That
starts
off
with
the
link
and
then
where
we
need
the
borrower
number
we
close
off
with
our
quote,
put
in
a
comma
and
then
we
plug
in
our
field
that
we're
going
to
use
that
that
goes
in
that
borrower
number
position
in
that
that
field
or
in
that
in
that
link,
then
a
comma.
B
Then
we
do
our
quote
again
and
continue
on
with
our
HTML.
Then
we
close
that
off
again
and
then
we
do
our
quote
again
and
I'm
inserting
a
card
number.
This
is
actually
what
shows
in
the
report
the
the
linkable
result.
So
it's
actually
going
to
just
show
the
card
number,
but
when
you
click
on
the
card
number
it'll
use
this
link
to
go
into
Koha
and
again.
I
gave
this
after
the
the
parenthesis,
a
short
term
library
card.
A
And
I'll
just
jump
in
and
say
the
trickiest
part
about
making
links
like
this
is
the
formatting
and
there
are
examples
on
the
wiki
that
you
can
just
copy
over.
So
if
this
is
intimidating
to
you
the
way
it's
all
kind
of
chunked
together,
you
can
use
the
wiki
to
kind
of
guide
you
through
what
you're
doing
there.
B
You
know
I
I
form,
these
simply
by
you
know,
I,
go
to
an
actual
borrower
and
I
copy,
the
the
HTML
in
the
URL
address,
and
then
you
know,
I,
look
for
where
the
borrower
neighbors
plugged
in
and
then
that's
the
piece
that
I
replaced
in
the
in
in
this
select
term.
So
you
know
it.
This
is
one
of
the
harder
things
to
do,
but
you
can
build
these
links,
which
is
really
handy.
Yeah.
A
B
A
B
A
B
A
Up
we're
talking
about
grouping
so
so
far,
we've
we've
talked
about
how
to
pull
data
in
basically
a
list
so
like
if
you
pull
a
list
of
borrowers
or
a
list
of
items
that
kind
of
thing,
but
some
of
the
more
common
reports
that
people
ask
you
to
write
are
like
how
many
checkouts
did
were
there
of
adult
books.
How
many
fiction
checked
out
that
kind
of
thing?
So
for
that
you,
you
have
to
aggregate
your
results
and
kind
of
smash
them
down.
A
So
you're
getting
a
category
with
a
number
basically-
and
you
do
that
by
using
a
group
by
statement
like
I
said
you
can
use
it
for
circulation,
you
can
use
it
for
item
counts,
there's
lots
of
different
uses
for
grouping
your
your
main
key
words
to
start
out
our
count.
So
if
you
do
a
count
of
a
of
a
field,
then
you're
gonna
get
a
count.
If
you
do
a,
you
can
also
do
a
sum.
Those
are
both
aggregate
keywords.
A
So
you're
gonna
have
to
have
a
group
by
a
statement
to
make
those
work
and
then
we'll
also
talk
a
little
bit
about
having
which
is
a
way
to
filter
your
results.
So
I
have
this
example:
circulation
by
collection,
codes
and
I'm
gonna
skip
back
over
to
my
test
server.
If
I
can
find
it
and
I
think
re
copy
that.
A
That's
what
I
wanted
to
group
this
report
by
so
I've
joined
statistics
on
the
collection
code
and
then
I've
joined
in
authorized
values,
which
is
what
gets
me
that
description
rather
than
the
actual
authorized
value,
so
that
that
will
give
me
a
clean
result,
a
collection
and
then
I
do
a
count
star
which
again
means
also
I'm,
counting
all
the
rows
and
statistics
and
then
so
and
I
also
just
want
to
check
out
and
renews.
So
that's
a
different
column
so
like
in
the
statistics,
table,
there's
a
type
column
and
it
has
different
standard
values.
A
Issue
renew
there's
a
check
in
I'm,
not
sure
with
the
keywords
for
that
are,
but
for
most
circulation
reports,
I
use
issue
and
renewal,
because
I
want
a
total
circulation
and
then
I've
got
a
daytime
filter
like
we
talked
about
daytime
is
a
field
in
the
statistics
table
that
I
can
use
to
find
things
between
a
date
range,
and
then
branch
is
also
already
in
the
statistics.
Table
and
I
did
kind
of
make
this
messy
just
so
that
you
can
see
that
if
you
can
combine
different
strategies,
so,
like
statistics
doesn't
have
an
alias.
A
A
It's
got
an
S
in
there.
British
I
can't
ever
remember
that
I
try
to
put
the
Z
in
so
I,
always
abbreviate
that
one
and
then
my
group,
by
statement
so
I
want
to
group
the
results
by
collection
code
so
that
I'm
getting
all
the
counts
for
collection
code,
all
the
counts
for
adult
book.
All
the
accounts
for
juvenile
book
that
kind
of
thing.
So,
if
I
run
this
report,
we'll
see
some
of
the
things
we've
talked
about
in
action.
So
this
is
the
date
range
parameters
that
we
saw.
A
Now
we
get
some
results,
so
you
can
see
that
it's
pulled
the
authorized
value
description.
This
is
a
little
messy
still
because
I
because
of
the
way
I
joined,
authorized
value
without
a
qualifier,
so
it
this
is
a
good
results,
but
that's
a
good
example
of
bad
results
and
I
know
that
because
I
know
my
authorized,
my
collection
codes
are
these
things:
juvenile
books,
adult
books,
I
know
that
I
don't
have
an
illustrator
collection
code,
but
you
can
see
what
a
grouping
does
so
then
we
get
the
count
there.
A
Aggregated
records
is
the
difference
between
where
and
having
so
we're
filters
arose
before
you
group
them.
So
if
you
want
to
say
just
pick
results
from
one
library
you're
doing
a
where
statement
having
excludes
records
after
the
grouping
so
say,
you've,
you've,
grouped
everything,
you've
counted
everything,
and
then
you
only
want
to
see
results
that
are
more
than
XYZ,
like
I
only
want
to
see
things
that
have
checked
out
more
than
20
times.
Something
like
that,
then
I
would
group
I
would
count.
A
A
A
So
what
I
can
do
is
take
the
total
of
the
fine
column
in
the
issuing
rules
table
and
if
it's
zeroed
out
then
I
know
that
that
library
doesn't
charge
fines,
so
I'm
just
selecting
the
branch
code,
because
I
want
to
break
down
of
all
the
branches
that
don't
have
fines
and
then
I'm
totaling
the
fines
and
I'm
using
a
sum
for
that
and
I've.
Also
given
it.
A
This
alias
total
fines
from
issuing
rules
and
then
I
group
by
the
branch
code,
because
that's
how
I
want
the
breakdown
to
come
and
then
I've
done,
having
total
fines
as
zero.
So
I
can
use
this
alias
that
I
created
up
here
as
my
my
filter
down
here,
if
I
were
to
put
this
in
the
where
statement.
Instead,
if
I
were
to
do
where
some
sum
of
fines
is
equal
to
zero,
it
would
give.
A
B
B
B
I
often
will
pick
the
day
after
for
the
for
the
the
last
date
in
the
between,
because
the
time
stamp
is
usually
at
the
beginning
of
the
day,
and
if
you
include,
you
know
from
this
state
to
this
state
and
use
the
last
date,
it
won't
include
the
last
date
because
it's
looking
at
that
time
stamp
as
well,
which
is
at
the
beginning
of
the
day.
So
you
got
it.
You
got
to
play
around
with
it
and
test
and
make
sure
you're
getting
all
of
your
information
with
those
between
it
can
be
tricky.
B
B
Sometimes
you
want
to
get
information
like,
for
example,
if
you're
getting
some
statistical
information,
sometimes
I'll
want
to
get
information
on
items
within
a
date.
Range
or
I'll
want
to
get
information
on
borrowers
within
a
date
range
and
if
you're,
like
our
library,
you're,
constantly
updating
information
or
weeding
out
items
or
people
that
are
no
longer
active
and
those
statistics
from
last
month.
You
know
if
you're
grabbing
statistics
from
last
month
and
you've
already
deleted
some
of
those
things.
B
Maybe
somebody
shortly
had
an
account
and
then
they
left
and
you
deleted
that
account
or
you
had
an
item
and
somebody
stole
it
or
it
got
lost
and
you
had
to
delete
it,
but
statistically
it
still
was
relevant
for
that
month.
I
want
to
pull
information
from
deleted
items
as
well
as
items
were
from
deleted,
as
well
as
borrowers.
So
this
is
where
unions
can
come
in
handy.
B
So
if
you
go
to
the
next
slide,
there's
an
example
of
just
a
basic
table.
This
is
without
a
union,
so
I'm
pulling
borrower
information,
I'm
pulling
the
card
member,
the
last
name,
first
name
and
when
they
enrolled
from
the
borrower's
table
and
I'm
telling
it
I
want
to
see
the
date
enrolled
after
certain
date
next
slide.
B
So
the
top
one
is
the
the
borrower's
table
and
then
between
these
I'm,
using
the
keyword
Union,
so
I'm
joining
these
two
results
together
with
the
Union,
and
it's
basically
like
running
two
reports
together
at
the
same
time,
so
my
bottom
tables
pulling
from
the
deleted
borrowers
now
the
key
thing
to
remember:
if
you're
doing
a
union
is
you
want
to
have
all
the
same
fields?
If
you
don't
have
all
the
same
fields,
you're
gonna
get
some
errors,
so
I
have
to
make
sure
that
both
tables
are
doing
the
card.
B
Number,
the
surname
or
the
first
name
in
Dayton
world,
which
is
really
easy
with
these
two
tables,
because
they're
structured
exactly
the
same,
so
I
just
copied
one
query
and
then
I
put
the
word
Union
and
then
I
pasted
that
the
same
query
and
then
I
just
changed
out
the
table
that
I
referenced
with
deleted
borrowers.
This
made
it
really
easy
because
I
didn't
have
any
aliases
or
table
references
in
front
of
the
fields,
but
if
you
do,
if
it's
a
more
complicated
structure,
make
sure
that
you
go
through
and
change
all
those
table.
B
We
whirring
mark
data
mark
data
is
a
little
challenging
because,
if
you've
ever
delved
into
the
mark
tables,
it's
a
is.
It
is
really
interesting
beast.
There
is
in
the
sequel
library.
There
is
a
section
towards
the
the
beginning
that
talks
about
how
to
extract
this
data,
and
we
I
did
just
a
really
brief
rundown
on
how
to
get
this
information.
But
this
is
a
very
basic
structure
in
the
Select
statement.
How
to
pull
this
information?
Your
table
is
the
Biblio
metadata.
B
So
that's
what
the
table
that
we're
pulling
from
am
I,
where
I'm
specifically
playing
it
from
a
specific
Biblio
number,
but
the
select
statements
a
little
tricky
so
I'm
using
this
function
called
extract
value
and
the
structure
is
basically
the
same,
except
for
what
I
have
here.
That's
highlighted
in
the
metadata
metadata
in
the
quote
after
the
the
to
four
slashes
I'm,
specifying
that
my
my
data
field
is
going
to
be
this
tag
952.
B
So
then,
what's
in
the
quotes
there
in
952,
that
is
the
the
mark,
a
field
that
I'm
going
for
and
then
after
the
slash
is
your
subfield
I
know
I'm,
not
a
cataloger.
So
excuse
me
if
I,
if
I
get
some
terms
wrong
here.
This
is
my
my
understanding
of
it
and
you
know:
I
pull
a
lot
from
the
the
sequel
library.
B
What
I'm
trying
to
figure
these
things
out,
but
so
I'm
pulling
from
the
1952
and
I'm
using
a
an
asterisk
here
as
the
subfields
to
say,
I
want
all
subfields,
so
952
all
subfields
and
then
of
course,
I,
say
I
want
this
to
show
as
items.
So
it
doesn't
have
all
this
extract
value
information
as
the
header
for
this
this
column
and
results.
B
B
A
B
Can't
remember
if
the
first
one
is
always
0
or
if
the
first
one
is
always
1.
Some
arrays
are
different
than
others,
but
in
this
case
I'm
pulling
a
specific
one
here,
and
so
this
is
highlighted
section
here.
This
is
a
little
added.
Snippet
I
have
multiple
856
s,
so
I'm
telling
it
to
pull
the
first
one
I
think
I
think
that's
what
one
is,
but
it
could
be
the
second
one
in
depending
on
how
the
array
is
built.
B
B
A
A
Your
publisher
information
is
probably
mapped
into
biblio
items,
so
you
can
pull
that
from
there
rather
than
going
into
the
mark
data,
it's
it's
just
when
you
need
like
the
special
fields
like
you
can't
get
a
sub
field
from
the
Biblio
table.
You
do
have
to
get
them
a
sub
field
from
the
the
metadata.
B
B
This
particular
link
goes
to
a
specific
instance
of
it,
and
if
you
go
up
to
the
top,
it's
it's
pointing
specifically
at
the
sequel,
light
type
of
sequel.
There
are
different
versions
of
this,
and
this
one
was
pretty
straightforward
in
matching
kind
of
you
know
the
structure,
but
you
know
I've
only
played
with
it
a
little
bit,
and
this
is
a
good
place
if
you
want
to
play
with
some
sequel
and
not
run
the
risk
of
bogging
down
your
server
or
making
a
mistake,
you
can
always
test
things
here.
B
The
one
tricky
part
is
when
you're
building
a
schema
or
building
you
were
your
down
and
work
with,
because
this
has
no
data
to
work
with.
Initially,
there
is
some
sample
stuff.
If
you
go
into
the
next
column
there
you
can
it'll
build
some
basic
tables
and
then
from
there
you
can
you
could
you
could
expand
on
that,
but
this
gets
a
little
bit
more
complicated,
but
if
you
just
want
to
use
some
basic
data,
basically
you're
creating
some
debt
over
on
the
left
table
and
you'd
have
to
learn
how
to
do
this.
B
It's
it's
not
necessarily
easy
right
off
the
bat,
but
this
is.
This
is
a
good
little
test
environment
to
play
with,
if
you,
if
you
want
to
figure
out
how
to
build
or
structure
some
sequel
so
over
on
the
right
hand,
side
is
a
place
where
you
actually
build
your
your
query,
so
you
can
see
some
stuff
that
you
actually
recognize
from
from
sequel
over
there.
Then
you
can
run
it
and
get
your
results
so
down
below.
B
Is
the
results
of
that
that
sequel,
so
you
can
go
in
there,
you
can
change,
you
can
add
tables,
you
can.
You
know,
build
more
tables
and
it's
you
know
I
feel
look
at
it.
You
can
probably
figure
out
how
they
built
the
table
and
build
more
tables
and
then
utilize
that,
in
your
query,
over
on
the
right-hand
side.
But
this
was
just
a
great
little
tool.
If
you
wanted
to
try
and
do
something
outside
of
the
work
environment
and.
A
Over
in
the
chat
we've
got,
Heather
asked
if
we
can
play
with
reports
in
the
Bywater
demo
and
nick
noted
that
it
does
reset
every
several
hours.
So
you
may
lose
your
work,
but
you
can
use
the
sandboxes
as
well
there's
data
in
there
you
can
play
with
and
you
can
spin
that
up
just
for
yourself.
So
there
are
other
options
out
there
as
well
and
Nick.
Put
a
link
into
the
sandbox
is.
If
anybody
wants
a.
B
A
B
If
somebody
said
that
they
took
some
courses
and
feel
like
they
learned
a
lot
more
from
both
of
us
I
appreciate
that.
Thank
you
very
much.
Yeah
I
stress
out
with
things
like
this,
because
I
am
NOT,
not
necessarily
the
the
authoritative
person
on
on
sequel,
but
I
have
learned
a
lot
and
taught
myself
a
lot
over
the
years
and
I
still
get
some
things
wrong.
A
My
strategy
is
always
trial
and
error.
So
it'll
tell
you
if
it
didn't
work,
Elaine's
asking.
If
there's
any
websites
recommended
for
basic
syntax
I,
don't
have
anything
off
the
top
of
my
head,
I,
usually
just
yeah,
w3
Caroline,
said
I
use
that
sometimes
usually
just
Google
around
until
I
find
what
I
need
I.
When.
B
I
Google
for
something
you
know:
I'll
lead
it
off
with
Mike
I'll.
Do
a
my
sequel.
If
you
just
do
sequel
its
hit
and
miss
because
you
know
there
are
different
flavors
of
sequel
I
mean
a
lot
of
times.
You
will
get
a
sequel,
server
kind
of
stuff
which
doesn't
necessarily
work.
My
sequel
I
get
better
results
with,
but
yeah
I
I
just
Google.
What
I
don't
know
yeah.
A
B
Well,
I
want
to
thank
everybody
that
joined
us
today.
Wow.
This
was
a
huge
turnout,
even
towards
the
the
very
end
for
all
of
you
to
hang
out
with
us
and
learn
what
we
have
to
say
about
a
sequel.
You
know
I
can't
say
it's
any
better
or
worse
than
any
of
the
other
presentations
that
we've
had
on
sequel,
but
I
enjoyed
working
with
you
Jason
on
this
and
and
I
feel
like
this
was
this
was
a
decent
presentation.