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

# When did a product price increase a given percentage

Hi, I have a products table that contains pricing by date for each product. My fields are PriceID (key), ProductName, PriceDate, and Price. What I want is to query for the date that any price went over a given percentage. So if I did a query on 01/01/2000 and 5% within 30 days, I want the results to show each product and the date that product's price increased at least 5%.

My ending fields should be ProductName, StartingDate, StartingPrice, IncreaseDate, IncreasePrice. Even though my table could have many entries for one product within the given timeframe, I only want to see the first date the increase occurred to keep the recordset small.

One problem will be to determine the StartingDate and StartingPrice for each product. To see why this is tricky, consider the following rows in your table:

```PriceID ProductName PriceDate   Price
536     widget     1999-12-15   9.37
538     widget     2000-01-15  10.00

If you specify a starting date of 01/01/2000 and a range of 30 days, then you can see that the DOODAD started on that day (#537) with a price of 5.00 and did not increase this price until 31 days later, so it does not qualify for the report. Unless, that is, you consider the change (#537) to be a change within the time period.

The WIDGET, on the other hand, definitely had a price increase (#538) within that time period. The increase was (10.00-9.37)/9.37 = 6.7%, so it does qualify for the report. But how did we know that its starting price was 9.37? We have to take the latest price prior to the time period.

So to get the StartingDate, we need a subquery, which will find the highest PriceDate before the time period. Then, since you only want one increase, we need the lowest PriceDate of any price change that occurs within the time period, so that's another subquery.

```select ProductName
, StartingDate
, StartingPrice
, IncreaseDate
, IncreasePrice
from (
select PriceID
, PriceDate  as StartingDate
, Price      as StartingPrice
from products as P1
where PriceDate
= ( select max(PriceDate)
from products
where PriceID = P1.PriceID
and PriceDate
< '2000-01-01' )
) as S
inner
join (
select PriceID
, PriceDate  as IncreaseDate
, Price      as IncreasePrice
from products as P2
where PriceDate
= ( select min(PriceDate)
from products
where PriceID = P2.PriceID
and PriceDate
>= '2000-01-01'
and PriceDate
< '2000-01-01'
plus 30 days )
) as E
on S.PriceID = E.PriceID
where 100 * ( IncreasePrice - StartingPrice )
/ StartingPrice
>= 5```

An alternative to this rather unwieldy (and probably slow) query would be to do the calculation in an application program. Simply return all rows prior to '2000-01-01' plus 30 days (note: databases vary in the actual SQL for date arithmetic) and use an ORDER BY. Then, program logic can detect the increases and produce the report with only one pass of the data. This assumes that there are not too many changes in the table to make returning all rows prior to '2000-01-01' plus 30 days prohibitive.

#### Have a question for an expert?

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

#### Start the conversation

Send me notifications when other members comment.

## SearchDataManagement

• ### Hitachi Vantara acquires data catalog vendor Waterline Data

With the acquisition of Waterline Data, Hitachi Vantara is bringing new data catalog capabilities that will expand the Lumada ...

• ### New Confluent Platform release boosts event streaming quality

Based on the open-source Kafka event streaming platform, the Confluent Platform 5.4 update adds new capabilities to help meet ...

• ### Where InfluxDB time series database is going

Users need more than SQL for querying databases, according to Paul Dix, co-founder and CTO of InfluxData. That's why the vendor ...

• ### ThoughtSpot IPO could be coming after vendor adds first CFO

Hiring of a CFO for the first time signals that ThoughtSpot may be positioning itself for an IPO and comes six months after what ...

• ### 5 ways enterprises adapt to the data scientist shortage

Where are all the data scientists? Coping with the data scientist shortage is a struggle for many enterprises. Here are five ways...

• ### Storytelling using data makes information easy to digest

In a Q&A, Nate Nichols and Anna Schena Walsh of AI-based analytics vendor Narrative Science talk about how data storytelling can ...

## SearchSAP

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

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

• ### New SAP leadership faces big challenges in 2020

Industry analysts discuss SAP's biggest issues in 2020, including how the two new CEOs will guide the company deeper into the ...

• ### SAP Data Hub opens predictive possibilities at Paul Hartmann

When medical supply firm Paul Hartmann AG tested a supply chain analysis system built on SAP Data Hub, it found that it could ...

## 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

• ### Don't ever put a non-Java LTS release into production

Development teams should avoid non-long-term support releases at all costs. Pay attention to the Java release cycle to make sure ...

• ### Public API strategy considerations for enterprise adoption

As organizations look for more cost-effective ways to manage data, an evolving landscape with APIs has made the technology more ...

• ### Ideas on how to hold a successful code hackathon

Want to host a hackathon? Here are some ideas on what a company can do to host an event that solves problems and reenergizes the ...

## SearchDataCenter

• ### Top data center skills admins can use in 2020

The 2019 tech job sector saw consistent growth and job availability. In 2020, admins should develop expertise on cloud ...

• ### Organizations try to predict the effect of 5G infrastructure

With more 5G and IoT devices emerging, admins must prepare their data centers to support low-latency apps and edge computing with...

• ### Top infrastructure and operations technology myths of 2019

Admins are consistently evaluating technology to improve I&O efficiency. Cost, integration and business goals are key components ...

## SearchContentManagement

• ### 4 popular content collaboration platforms to consider

Companies need to be organized if they want to be efficient. Content collaboration platforms are useful, but first, ensure that ...

• ### AI can enhance content security with a bit of planning

Microsoft and Box both use AI technologies to keep content secure in the cloud. But before using such tools, businesses first ...

• ### Ex-SAP exec steers Episerver CMS toward digital experience market

Alex Atzberger discusses leaving the helm of SAP's CX platform to become Episerver CEO. Now, Episerver looks to reinvent itself ...

## SearchHRSoftware

• ### Critical tips for managing contingent workers

Contingent workers save companies both time and money, so it's important to manage them in a win-win way. Here is what HR teams ...

• ### Impact of AI on jobs goes on the presidential campaign trail

The impact of AI on jobs is a major issue for employers, who are struggling with how to address it. Robots, automation and AI ...

• ### Why mobile recruiting is the future

Recruiters can use text recruiting to connect with great candidates. Here's a look at how mobile recruiting works, why it's ...

Close