Q
Problem solve Get help with specific problems with your technologies, process and projects.

# A "simple" crosstab problem

I am trying to build a query on multiple tables. I have created a view based on the multiple tables (8). I have following columns in the view -- CATEGORY, SALES_OFFICE, SALES_GROUP, STARTWEEK, ENDWEEK, DURATION and PRICE. If CATEGORY, SALES_OFFICE, SALES_GROUP, STARTWEEK, ENDWEEK and DURATION is the same for multiple records (it would occur max 4 occurrences, i.e. 4 records), then it should be displayed in the following way: CATEGORY SALESOFFICE SALESGROUP STARTWEEK ENDWEEK DURATION PRICE1 PRICE2 PRICE3 PRICE4.

Also the records should not be duplicated. I tried to generate a query to display data in the above format, but I get a cartesian product. Any thoughts on how to go ahead with it?

With the cartesian product, you were half way to a solution -- not a good solution, but a solution that could work.

Let's call your view V and let's call all those other columns you mentioned C. The following query will do what you want --

```select v1.C
, v1.PRICE, v2.PRICE, v3.PRICE, v4.PRICE
from V as v1
left outer join V as v2 on v1.C = v2.C
left outer join V as v3 on v1.C = v3.C
left outer join V as v4 on v1.C = v4.C```

The joins are LEFT OUTER in case a given value of C occurs fewer than 4 times. The problem with this 4-way join, though, and the reason it's such a poor solution, is that it will take forever to run. V isn't just a table, it's a view, containing eight tables. The optimizer has to assemble 32 tables into a working retrieval strategy, and you have to write the ON conditions correctly, matching not just C, but six aliased columns correctly three times. Ugh.

A much better solution is to use something like the CROSSTAB feature that's built into Microsoft Access. The query is dead simple and the software takes care of arranging the results across the page.

Alternatively, you could write a stored procedure. The procedure would run a simple query like

```select C, PRICE
from V
order by C```

The stored procedure would then use a cursor to loop over the result set, and use "current/previous" logic to detect when the current row has the same value of C as the previous row. The PRICE values would be written into adjacent columns of a temporary table during the looping. Finally, the procedure would return the contents of the temporary table.

#### Start the conversation

Send me notifications when other members comment.

## SearchDataManagement

• ### DataStax making Cassandra easier with Kubernetes Operators

New Kubernetes tool for the Apache Cassandra database is DataStax's attempt to create a broadly adopted approach for cloud native...

• ### Ascend boosts enterprise data governance with data lineage

The new capabilities of Ascend Govern bring data lineage and enterprise data governance as well as the ability to try and figure ...

• ### The business benefits of enterprise data governance and MDM

Data leaders from prominent large organizations provide insights into data governance best practices and benefits, at ...

• ### Many employees still resist data-driven culture

While most employees see the benefits of data to drive decision-making, many still resist analytics, according to a report from ...

• ### SAS analytics platform benefiting from AI investment

Fueled by SAS' investment in AI and augmented intelligence features, the long-established vendor strengthened its BI platform ...

• ### Trends and top use cases for streaming data analytics

As more enterprises adopt real-time analytics, new infrastructure and best practices are appearing. Here are some trending ...

## SearchSAP

• ### SAP S/4HANA migration: Critical advice for moving off ECC

With the end of SAP ECC support looming in 2027, organizations must make some tough decisions. Here's a look at your choices.

• ### How to pick a SuccessFactors implementation partner

Selecting the right SuccessFactors implementation partner is a critical step in the journey to deploying the system. Check out ...

• ### 6 critical steps of a successful SAP S/4HANA migration

A successful S/4HANA project starts with knowing why your organization should even make the move, then nailing down whether S/4 ...

## SearchSQLServer

• ### SQL Server database design best practices and tips for DBAs

Good database design is a must to meet processing needs in SQL Server systems. In a webinar, consultant Koen Verbeeck offered ...

• ### SQL Server in Azure database choices and what they offer users

SQL Server databases can be moved to the Azure cloud in several different ways. Here's what you'll get from each of the options ...

• ### Using a LEFT OUTER JOIN vs. RIGHT OUTER JOIN in SQL

In this book excerpt, you'll learn LEFT OUTER JOIN vs. RIGHT OUTER JOIN techniques and find various examples for creating SQL ...

## TheServerSide.com

• ### Developing a COVID-19 application? Design it the right way

Application developers with skills and an idea could design an app to combat the virus. Follow these insights to effectively ...

• ### How developers can volunteer during the COVID-19 pandemic

What resources can developers offer to go against COVID-19? Explore some promising developer volunteer and open source project ...

• ### 5 Jenkins alternatives for Java developers

In need of an alternative to Jenkins as part of a CI/CD environment? Consider options from Atlassian, GitLab, Spinnaker, ...

## SearchDataCenter

• ### Tech giants aim supercomputers, clouds at finding a COVID-19 cure

The new COVID-19 HPC consortium comprised of tech giants, national labs and academia are using supercomputers and clouds to speed...

• ### Top vendor SDDC certification programs for admins

If you decide to grow your knowledge of software-defined data center technologies, VMware, Nuage Networks and Microsoft offer ...

• ### Build up your knowledge of leaf-spine network technology

As organizations deal with challenges of single tree path networks, many admins are considering leaf-spine architectures. Learn ...

## SearchContentManagement

• ### Creating digital experiences key to driving exceptional CX

The way in which businesses build digital experiences is ever-evolving. It's a race to create easier-to-use customer interfaces ...

• ### Vendors offer free remote work technology for telecommuting

It's more than a marketing ploy: Cloud technology vendors, seeing their own issues enabling remote work, extend paid products to ...

• ### How businesses should deal with enterprise search issues

Enterprise search issues frequently complicate user experience with ECM systems. While users may face many problems, they also ...

## SearchHRSoftware

• ### Best-case, worst-case pandemic scenarios for India service providers

India's IT and business support services will be tested during that country's pandemic lockdown. Many workers are now operating ...

• ### Farmers Insurance piloting human-like VR training

VR training has become a best practice at Farmers Insurance Exchange. Its claims adjusters are being exposed to more scenarios ...

• ### Virtual hiring, avoiding layoffs part of HR's pandemic response

In the face of a pandemic, many firms are trying to avoid layoffs and even hire. They are using virtual tools, including testing ...

Close