Solved

SQL Server 2000 - query help

Posted on 2014-01-14
10
540 Views
Last Modified: 2014-01-15
SQL Server 2000 - I have this query:

SELECT JobTitle, LastName + ',' + FirstName as 'Name', NUM , Shift
FROM [AIO_Test_Results].[dbo].[EmployeeInfo] Where [Group] = 'PRODUCTION'
and Dept = 'BRAZE' and TRAIN IS NULL and Jobtitle = 'LEAD'

LEAD    Name1   001060     1
LEAD    Name2   004545     2

 results attached.

I want result to appear in single line:

LEAD    Name1   001060     1  LEAD    Name2   004545     2



any idea?
Capture.PNG
0
Comment
Question by:mani_sai
  • 5
  • 4
10 Comments
 
LVL 16

Expert Comment

by:Surendra Nath
ID: 39780583
I think you are looking for generating report a two columunar report having both of them in the same line.... if that is the case then doing that in the SQL is not a good thing....

But to full fill your requirement you can do that like below, but remember this works only if you have two rows.

SELECT E1.JobTitle, E1.LastName + ',' + E1.FirstName as 'Name', E1.NUM , E1.Shift
,E2.JobTitle, E2.LastName + ',' + E2.FirstName as 'Name', E2.NUM , E2.Shift
FROM [AIO_Test_Results].[dbo].[EmployeeInfo] E1,
[AIO_Test_Results].[dbo].[EmployeeInfo]  E2
Where E1.[Group] = 'PRODUCTION'
and E1.Dept = 'BRAZE' 
and E1.TRAIN IS NULL 
and E1.Jobtitle = 'LEAD'
AND E2.[Group] = 'PRODUCTION'
and E2.Dept = 'BRAZE' 
and E2.TRAIN IS NULL 
and E2.Jobtitle = 'LEAD'
AND E1.LastName+','+E1.FirstName  = 'Landum,my..'
AND E2.LastName+','+E2.FirstName  = 'Jackson,bel..'

Open in new window

0
 
LVL 24

Accepted Solution

by:
chaau earned 500 total points
ID: 39780619
You can't use PIVOT, as it was introduced in SQL Server 2005. In your situation you need to use CASE with GROUP BY, like this:
SELECT JobTitle, 
MAX(CASE SHIFT WHEN 1 THEN LastName + ',' + FirstName END) as 'Name1', 
MAX(CASE SHIFT WHEN 1 THEN NUM END) AS NUM1, 
MAX(CASE SHIFT WHEN 1 THEN SHIFT END) AS SHIFT1, 
MAX(CASE SHIFT WHEN 2 THEN LastName + ',' + FirstName END) as 'Name2', 
MAX(CASE SHIFT WHEN 2 THEN NUM END) AS NUM2, 
MAX(CASE SHIFT WHEN 2 THEN SHIFT END) AS SHIFT2 
FROM [AIO_Test_Results].[dbo].[EmployeeInfo] Where [Group] = 'PRODUCTION'
and Dept = 'BRAZE' and TRAIN IS NULL and Jobtitle = 'LEAD'
GROUP BY Jobtitle

Open in new window

The query can be very easily extended to support more shifts
0
 
LVL 8

Author Comment

by:mani_sai
ID: 39780691
Thanks.

That worked for LEAD. I also need to display for employees:  (jobtitle <> LEAD)

SELECT JobTitle,
CASE SHIFT WHEN 1 THEN LastName + ',' + FirstName END as 'Name1',
CASE SHIFT WHEN 1 THEN NUM END AS NUM1,
CASE SHIFT WHEN 1 THEN SHIFT END AS SHIFT1,
CASE SHIFT WHEN 2 THEN LastName + ',' + FirstName END as 'Name2',
CASE SHIFT WHEN 2 THEN NUM END AS NUM2,
CASE SHIFT WHEN 2 THEN SHIFT END AS SHIFT2
FROM [AIO_Test_Results].[dbo].[EmployeeInfo] Where [Group] = 'PRODUCTION'
and Dept = 'BRAZE' and TRAIN IS NULL and Jobtitle <> 'LEAD'


I am getting results with null on some rows... is ti possible to eliminate NULL..

Results attached.
Capture.PNG
0
Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

 
LVL 24

Expert Comment

by:chaau
ID: 39780715
What do you want to be displayed in place of NULLs?
0
 
LVL 8

Author Comment

by:mani_sai
ID: 39780732
I want to display like this:

please see attached file
Capture.PNG
0
 
LVL 24

Expert Comment

by:chaau
ID: 39780746
How do you know how to "marry" name1 with name2? Is there another field that allows you to identify that they belong to the same row?
0
 
LVL 8

Author Comment

by:mani_sai
ID: 39780758
There is no relation between Name1 and Name2.

First shift will contain any no of employee  based on the query (9 in this example.)

Second Shift will contain any no of employees again based on the query ( 6 in this example.)

thanks for looking into it.
0
 
LVL 24

Expert Comment

by:chaau
ID: 39780787
It is very hard to do in SQL Server 2000. How long are you stuck with this version for? Any plans to upgrade?
0
 
LVL 8

Author Comment

by:mani_sai
ID: 39782226
company is not planning to upgrade anytime soon...

Can we do it in multiple steps using temp tables....

we have minimal data on the tables, so performance is not a concern...
0
 
LVL 8

Author Comment

by:mani_sai
ID: 39782647
OK,  I got the results using temp table. Thanks for your help...
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Occasionally there is a need to clean table columns, especially if you have inherited legacy data. There are obviously many ways to accomplish that, including elaborate UPDATE queries with anywhere from one to numerous REPLACE functions (even within…
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question