Link to home
Start Free TrialLog in
Avatar of fasse
fasse

asked on

Need to know yes or no from looking at lots of records with yes or no answers.

I am working on a production report.  I need to know if a assembly has been fully issued to based on the issued state of each part.
I think the info will help to explain.

If we look at assemblyseq 0 it is easy to see it is not issued to because all the issued data is no and on assemblyseq 1 they are all yes, but assemblyseq 2 has  2 yes and 1 no.  Results I am looking for would be like this,
F100,0,200-001,No
F100,1,200-002,Yes
F100,2,200-003,No

If they are not all yes I want it to return a no, would be nice as it check the query or table which ever is easiest that it would create  or import the results into a new table.


JobNum,AssemblySeq,Asm-PartNum,Asm-Material,Issued
F100,0,200-001,123-123,No
F100,0,200-001,123-124,No
F100,0,200-001,123-125,No
F100,0,200-001,123-126,No
F100,0,200-001,123-127,No
F100,1,200-002,123-128,Yes
F100,1,200-002,123-129,Yes
F100,1,200-002,123-130,Yes
F100,1,200-002,123-131,Yes
F100,1,200-002,123-132,Yes
F100,1,200-002,123-133,Yes
F100,1,200-002,123-134,Yes
F100,2,200-003,123-135,No
F100,2,200-003,123-136,Yes
F100,2,200-003,123-137,Yes
F100,3,200-004,123-138,No
F100,3,200-004,123-139,Yes
F100,3,200-004,123-140,Yes
F100,4,200-005,123-141,No
F100,4,200-005,123-142,No
F100,4,200-005,123-143,No
F100,4,200-005,123-144,Yes
F100,7,200-006,123-145,Yes
F100,8,200-006,123-146,Yes
Avatar of Darrell Porter
Darrell Porter
Flag of United States of America image

Edit the title of the post to read:
"Need to determine yes or no from looking at many records with yes or no answers."

Essentially this is a logical AND operation - all sub-assembly levels' status MUST be "yes" or the assembly is not complete, resulting in a "No" answer.

So you could simply write a where clause wherein status, or whatever the yes/no column is name, is "no".  The moment you hit a "no" value in that sub assembly, you can stop querying that sub assembly and go to the next one.

If, after iterating through all the sub assembly records for an assembly, you have not hit a "no" value, it means all of the sub assemblies for that assembly are set to yes and you can presume that assembly is complete.

If you need drill-down capabilities, that will be additional work.

I am, in fact, trying to lead you to the answer instead of writing it for you - it sounds like you somewhat know what you're doing and just need a bit of a hint.
Avatar of fasse
fasse

ASKER

That is what I get for typing in a hurry and not proof reading anything.  Question how do I edit a post?  Your thinking is correct that is the logic I was looking for.  I will see what I can do with it from there.
Hi Fasse.

Please be patient if my English is not so good, as it's not my mother language.

Another way to get what you are looking for is creating a simple query.

You can count the items where iSSued = "No", Grouping By JobNum and AssemblySeq.

If the count is greater than 0, then the Assembly Seq uence is not completed.

If you only use group By JobNum, then you are checking all assemblies.

And, of course, you can use both queries and get all information.

You can use a recordset loaded from the queries and get the values.


Also, instead of using recordsets and queries, you can use domain aggregate functions; DCount will give you the values you need. If you need more help, I'll pleased in giving it.


Regards.

Antonio.
ASKER CERTIFIED SOLUTION
Avatar of Dale Fye
Dale Fye
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of fasse

ASKER

Dale it looks like your solution is what I am looking for.  This is my statement.
SELECT tbl-target-jobs.[jobnum], tbl-target-jobs.[assemblyseq], tbl-target-jobs.[asm-partnum], iif(Count(tbl-target-jobs.[issued]) = Sum(iif(tbl-target-jobs.[issued] = "Yes", 1, 0)), "Yes", "No")
FROM 'tbl-target-jobs'
GROUP BY jobnum, assemblyseq, asm-partnum

I get the error incomplete query clause.
Did you try my query?
You had single quotes around the table name, that may have been your problem, so remove those and see if that works.  Otherwise, lets start with this:

SELECT tbl-target-jobs.[jobnum]
, tbl-target-jobs.[assemblyseq]
, tbl-target-jobs.[asm-partnum]
, Count(tbl-target-jobs.[issued]) as CountIssued
, Sum(iif(tbl-target-jobs.[issued] = "Yes", 1, 0)) as CountIssuedYes
FROM tbl-target-jobs
GROUP BY jobnum, assemblyseq, asm-partnum

Please confirm that the [Issued] column is text, and not boolean.  If it is boolean, they you will have to replace "Yes" in either of the previous queries with -1
Avatar of fasse

ASKER

Dale issued is text and boolean.

I get an syntx error in the from clause.

Also Sharath I get the same error with yours.  I am not very good at sql so I really have no idea what is wrong with it.
Sorry, cannot be Text and Boolean

A text field would contain the values "Yes" or "No", with a text field, you would do a criteria that looks like:

WHERE [Included] = "Yes"
or
WHERE [Included] = "No"

A boolean field, when viewing the table in design view will have a data type of Yes/No.  With a boolean field, you can either say:

WHERE [Issued] = Yes
or
WHERE [Issued] = -1
or
WHERE [Issued] = No
or
WHERE [Issued] = 0

If you are getting an Error in the FROM clause, then you probably have misspelled the table name, but it might also be a result of using [Issued] = "Yes" instead of [Issued] = -1
Avatar of fasse

ASKER

Sorry my head is not working right.  It is a text field not a boolean field.  I am sorry
Avatar of fasse

ASKER

The misspelling on the table  gave me a hint.  It does not like the - in the table name.  I removed it and it worked.
"it worked"

Which query worked, the first one, or the second one?
Avatar of fasse

ASKER

SELECT tbltargetjobs.jobnum, tbltargetjobs.assemblyseq, tbltargetjobs.asmpartnum, Count(tbltargetjobs.issued) AS CountIssued, Sum(IIf(tbltargetjobs.[issued]="Yes",1,0)) AS CountIssuedYes
FROM tbltargetjobs
GROUP BY tbltargetjobs.jobnum, tbltargetjobs.assemblyseq, tbltargetjobs.asmpartnum;
so, have you tried the first one?
Can you post the error message with my query?
Avatar of fasse

ASKER

The name of the table was what was causing issues on both Sharath and Dale's statements.  Once change both original suggestions worked perfectly.