|
The category table is:
CREATE TABLE TAPCTGR (grer CHAR(3), GRCTG CHAR(5) GRATCD CHAR(5)
GRDSC CHAR(30) GRWGHT NUMERIC(2,1))
That is, Company, Category, Absence Code, Description, Weight.
(Weight will be 1 for a full day; .5 for a half day.)
Sample:
SELECT GRCTG, GRATCD, GRDSC, GRWGHT FROM TAPCTGR
WHERE GRATCD in ('G','V') ORDER BY GRCTG, GRATCD
ALLAB,G,CARRY-OVER VACATION,1.0
ALLAB,V,VACATION,1.0
ANYCD,V,VACATION,1.0
CCVAC,V,VACATION,1.0
SRVAC,G,CARRY-OVER VACATION,1.0
SRVAC,V,VACATION,1.0
(etc.)
Typos unintentional; copy/paste not possible here.
On 03-Jun-2011 11:08 , Richard Casey wrote:
How is your category/code info stored?
Just for grins (sanity optional!), I created a table (codefile)
with two fields: category and code.
The following query should identify category "pairs" that contain
the same set of codes.
with catcount as (
select category,count(*) count
from codefile
group by category),
catcomp as (
select a.category cat1, b.category cat2
from catcount a
join catcount b on a.count=b.count
where a.category<>b.category),
<<SNIP>>
Dennis on Friday, June 03, 2011 12:40 PM wrote:
We have a table as part of our HR system that is used to
categorize days off. For example, "S" (for sick) is in the
SCKAC, USEDS, VACCK and 14 other categories (I know, I know).
V(acation) is in 7 categories, and so on. These things are
categorized in such a way because they intersect so much. For
example, a Carry-over vacation day and a Vacation day each have
the same effect in terms of Vacation Balance, but very different
effects when it comes to calculating next year's new balance.
In all, there are 110 absence codes that are grouped into 55
different categories. In an effort to simplify all of this, I've
been asked to identify categories that share common members, with
no exceptions. (In other words, if categories AAA, ABB and ACC
all contain V and C, and none of them contain anything else, they
are exact duplicates.)
By the same token, If V and G are in 5 categories, but a sixth
category lacks G, the powers that be would like this noted also.
I'm sure there's a way to get to this answer and still maintain
what's left of my sanity (many of you realize that there's little
left), but I have not yet landed on it. I thought SQL might get
me to the answer most readily, but try as I might I haven't found
a workable solution yet; my CTEs quickly get too complex for me
to follow. (See prior note on sanity.) Pivot table doesn't seem
quite right (though it may help); counts are not definitive
enough...
So I thought I'd come to this group; see if you've had a similar
situation, and might be willing to share how you arrived at a
solution.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.