Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 UNION sytanx

Author  Topic 

dr223
Constraint Violating Yak Guru

444 Posts

Posted - 2012-01-09 : 09:49:46
Hi,

I have th efollowing select queries which am trying to union together. When I ran the select statements separetely I receive a total number of 56 records.

However, when I enter the UNION instead of getting 56 records I receive 51 records. Any help please

SELECT		dbo.viewCase.CaseID, dbo.viewCase.StudyID, dbo.viewCase.PracticeID, dbo.viewCase.PatientID, dbo.viewCase.TreatmentAssignmentID, 
dbo.viewCase.NotEligible, dbo.viewCase.VisionID, dbo.viewForm.FormStatusName, dbo.viewForm.FormTypeID,
dbo.viewForm.SubmittedDate,
dbo.viewCase.OptedOut, dbo.viewCase.NotConsented, dbo.viewCase.PracticeCode, dbo.viewForm.FormStatusID
FROM dbo.viewForm INNER JOIN
dbo.viewCase ON dbo.viewForm.CaseID = dbo.viewCase.CaseID
WHERE (dbo.viewCase.NotEligible = 'True') AND (dbo.viewForm.FormTypeID IN (1, 2)) AND (dbo.viewForm.SubmittedDate IS NOT NULL)
and dbo.viewForm.FormStatusID in (2)
UNION
SELECT dbo.viewCase.CaseID, dbo.viewCase.StudyID, dbo.viewCase.PracticeID, dbo.viewCase.PatientID, dbo.viewCase.TreatmentAssignmentID,
dbo.viewCase.NotEligible, dbo.viewCase.VisionID, dbo.viewForm.FormStatusName, dbo.viewForm.FormTypeID,
dbo.viewForm.SubmittedDate,
dbo.viewCase.OptedOut, dbo.viewCase.NotConsented, dbo.viewCase.PracticeCode, dbo.viewForm.FormStatusID
FROM dbo.viewForm INNER JOIN
dbo.viewCase ON dbo.viewForm.CaseID = dbo.viewCase.CaseID
WHERE (dbo.viewCase.OptedOut = 'True') AND (dbo.viewForm.FormTypeID IN (1, 2)) AND (dbo.viewForm.SubmittedDate IS NOT NULL)
and dbo.viewForm.FormStatusID in (2)
UNION
SELECT dbo.viewCase.CaseID, dbo.viewCase.StudyID, dbo.viewCase.PracticeID, dbo.viewCase.PatientID, dbo.viewCase.TreatmentAssignmentID,
dbo.viewCase.NotEligible, dbo.viewCase.VisionID, dbo.viewForm.FormStatusName, dbo.viewForm.FormTypeID,
dbo.viewForm.SubmittedDate,
dbo.viewCase.OptedOut, dbo.viewCase.NotConsented, dbo.viewCase.PracticeCode, dbo.viewForm.FormStatusID
FROM dbo.viewForm INNER JOIN
dbo.viewCase ON dbo.viewForm.CaseID = dbo.viewCase.CaseID
WHERE (dbo.viewCase.NotConsented = 'True') AND (dbo.viewForm.FormTypeID IN (1, 2)) AND (dbo.viewForm.SubmittedDate IS NOT NULL)
and dbo.viewForm.FormStatusID in (2)
UNION
SELECT dbo.viewCase.CaseID, dbo.viewCase.StudyID, dbo.viewCase.PracticeID, dbo.viewCase.PatientID, dbo.viewCase.TreatmentAssignmentID,
dbo.viewCase.NotEligible, dbo.viewCase.VisionID, dbo.viewForm.FormStatusName, dbo.viewForm.FormTypeID,
dbo.viewForm.SubmittedDate,
dbo.viewCase.OptedOut, dbo.viewCase.NotConsented, dbo.viewCase.PracticeCode, dbo.viewForm.FormStatusID
FROM dbo.viewForm INNER JOIN
dbo.viewCase ON dbo.viewForm.CaseID = dbo.viewCase.CaseID
WHERE (dbo.viewCase.TreatmentAssignmentID IS NOT NULL) AND (dbo.viewForm.FormTypeID IN (1)) AND (dbo.viewForm.SubmittedDate IS NOT NULL)
and dbo.viewForm.FormStatusID in (2)

nigelrivett
Master Smack Fu Yak Hacker

3385 Posts

Posted - 2012-01-09 : 09:52:03
Probably due to duplicates.
Try with
union all

==========================================
Cursors are useful if you don't know sql.
SSIS can be used in a similar way.
Beer is not cold and it isn't fizzy.
Go to Top of Page

dr223
Constraint Violating Yak Guru

444 Posts

Posted - 2012-01-09 : 09:56:26
excellent - worked perfectly..

Many thanks
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2012-01-09 : 09:58:40
why you need UNION? wont below suffice?


SELECT dbo.viewCase.CaseID, dbo.viewCase.StudyID, dbo.viewCase.PracticeID, dbo.viewCase.PatientID, dbo.viewCase.TreatmentAssignmentID,
dbo.viewCase.NotEligible, dbo.viewCase.VisionID, dbo.viewForm.FormStatusName, dbo.viewForm.FormTypeID,
dbo.viewForm.SubmittedDate,
dbo.viewCase.OptedOut, dbo.viewCase.NotConsented, dbo.viewCase.PracticeCode, dbo.viewForm.FormStatusID
FROM dbo.viewForm INNER JOIN
dbo.viewCase ON dbo.viewForm.CaseID = dbo.viewCase.CaseID
WHERE (((dbo.viewCase.NotEligible = 'True' OR dbo.viewCase.OptedOut = 'True' OR dbo.viewCase.NotConsented = 'True' ) AND (dbo.viewForm.FormTypeID IN (1, 2))) OR (dbo.viewCase.TreatmentAssignmentID IS NOT NULL AND dbo.viewForm.FormTypeID IN (1)))

AND (dbo.viewForm.SubmittedDate IS NOT NULL)
and dbo.viewForm.FormStatusID in (2)


------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/

Go to Top of Page

dr223
Constraint Violating Yak Guru

444 Posts

Posted - 2012-01-09 : 10:01:53
ok, Vishakh16 - in your query I receive 51 records instead of 56 - Union all gave me 56 records.

Vishakh16 anyway I can update your more simplified query to extract 56 records?

Thanks
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2012-01-09 : 10:16:07
hmm..are you using DISTINCT? unless you do that, I think it should all 56 records. can you post the missing records here?

------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/

Go to Top of Page
   

- Advertisement -