MS Access - Passing fields in reports - ms-access-2016

I have a report that produces twelve pages, one for each month of the year. The report's main query contains the month name.
Below it is a subquery that can have more than one row in it. Right now the content of the subquery is identical on all twelve pages. But that's not what I want.
Is it possible to 'grab' the month name from the main report's query and use it in the subquery? In other words, I want the month name to be relected in the subquery on each page.
My online research says no, but I'm hoping an expert knows better.

Use the MasterLinkFields and ChildLinkFields of the subreport control to filter the subreport.
And use the month value (1 to 12) to filter, not the month name as this is localised.

Related

Combining a dynamic total by state in Tableau

I am using a US shootings database where the event is specified by 3 columns, state event occured, date, total casualties. I want to make a dashboard in Tableau that has dynamic sum and sorting where if the year column was a page that I could click through, the graphic would reflect the top ten states of sum(casualties) of that specified range. So my data ranges from 1924-2022, and if I started the page at 1980, it would graph the top 10 states with the sum of totals between 1924-1980. The next page could potentially be a different top 10 of states and would reflect the current top 10 states as the sum(casualties) from 1924-1981.
I hope this makes sense. I apologize if it does not as I am just starting out. I did attempt to sort the data in python by making a column for each year, and you could move horizontally along a state to see it's totals change as each year goes by. Would it be best to add these year columns as a group and sort by top 10 and year that way?
Edit:
Attempting to click through the year filter and dynamically sort the graph by top 10 states with total shootings from 1924-current year
Can you use SQL to query the database? If so, you can insert a date parameter in the query that replaces the use of pages to calculate the sum based on the earliest datapoint to the year you have selected and then just click show parameter. When you create the parameter make sure you set step size to one year and switch the parameter to slider. You can also create a state parameter that is based off that column of data and then use it to filter the data in SQL. However, you may need to use a calculated field or SQL case statements if you want to change the granularity from all the states to one selected state.
I hope this helps you. If you need more clarification, please comment and I will try to provide an example.

How to compare two tables in data studio

I have two tables in data studio:
I'm asking the user to select two dates to compare two weeks. This way, we can see the two weeks' data side by side. However, I also want to see the percentages of change based on vendor. Is there a way to show this? Or how can I improve the comparison method ?
note: vendor name field is not fixed. it can change for every week.
Data Studio provides a way to compare current date with previous one, but the comparison parameter will be fixed (eg. "current week vs previous week", "current month vs 2 months ago"). That means you won't be able to drop a selector for your users.
With this feature you to select the current date (or a range of dates) and it will always compare to the period you choose in design view. (I usually select the option "previous period", so if the user select a week, the comparison will be with the previous week; if the user select a month, the comparison will be with the previous month).
To achieve this, just check this entry in the documentation.
Another limitation is that it will always display the difference between current value and previous value (delta). Currently, you can't change this behavior.

PowerBI counts rows in non related table including filtering and non-matches

I have two tables in PowerBI and a slicer, presented below in an abstracted way.
I want to know the number of orders placed for a customer in a given date range. This data is a sample for illustration - there are actually around 10,000 Customers and 500,000 Orders and both tables have many other fields, Ids etc.
My challenge -
Whilst this is easy enough do by relating the tables and doing a count, the difficulty comes in when I still want to see customers with 0 orders and on top of that I want this to work within a date range. In other words, instead of the customers with no orders disappearing form the list, I want them to appear in the list, but with a 0 value, depending on the date range. It would also be good if this could act as a measure, so I can see the number of total customers that have not ordered on a month by month basis. I have tried outer joins, merge queries, cross joins and lookups and cant seem to crack it.
Example 1: If I set the order date slicer to be: 02/01/2017 to 01/01/2018 I want the following results
Example 2: If I set the order date slicer to be: 03/01/2017 to 06/01/2017 I want the following results
Any help appreciated!
Thanks
This is entirely possible with a Measure. When you're using the Order field to count the rows for each customer, you're essential doing a COUNTROWS() function.
With your relationship still active, we can Prefix this in a measure to check for the blanks, and in those cases, return 0. something like this would work
Measure = IF(ISBLANK(COUNTROWS(Orders)),0,COUNTROWS(Orders))
In this case, 'Orders' is the table containing the Order and Order Date fields

Conditional Query and Retrieval

I'm making a Google Sheet for our handyman business and need to collect totals on multiple client labor and material activities. I have a pretty decent sheet going, but, since we work for different clients on different days, with lots of other information in between, it would be nice if I could make a cell collect totals from any cell that has their name at the top of the column instead of chasing all over the sheet to get the client's grand total at the end of the week. Kind of like, if any cell in Row 3 has the word (name) Doe in it, return the value in row 10 of the corresponding column (where the labor for that day has been added up for that client on that day). It'd be great if it could add everything up for that client for the week every time their name is mentioned.
Too much to ask? Thanks for any help!!
If you can standardize the column that the name will occur in you can use vlookup to do exactly what you want. You may need to use partial matches as well if you want only check for part of the name https://exceljet.net/formula/partial-match-with-vlookup.

Rails: select records with maximum date

In my app users can save sales reports for given dates. What I want to do now is to query the database and select only the latest sales reports (all those reports that have the maximum date in my table).
I know how to sort all reports by date and to select the one with the highest date - however I don't know how to retrieve multiple reports with the highest date.
How can I achieve that? I'm using Postgres.
Something like this?
SalesReport.where(date: SalesReport.maximum('date'))
EDIT: Just to bring visibility to #muistooshort's comment below, you can reduce the two queries to a single query (with a subselect), using the following form:
SalesReport.where(date: SalesReport.select('MAX(date)'))
If there is a lot of latency between your web host and your database host, this could halve execution times. It is almost always the preferred form.
You can get the maximum date to search for matching reports:
max_date = Report.maximum('date')
reports = Report.where(date: max_date)

Resources