Vertical Axis in chart repeating values -SSRS 2008 R2 - reporting-services

This is my data:
Year / Month / Sales
2012 / 1 / 2496496.82
2011 / 1 / 2618210.62
2012 / 2 / 2451754.51
2011 / 2 / 2268699.08
2011 / 3 / 2810107.42
2012 / 3 / 2621037.55
Serie label properties: Currency, show values in Millions, use 1000 separators, decimal place 2
vertical axis properties: minimun auto, maximun auto, interval auto, interval type auto
and this is what a got in vertical axis:
3
3
2
2
1
1
0
The report showing duplicated values in Y-axis, How can i get rid of the repeating values 3 3 2 2 1 1 ??
I hope someone has the answer, thank you

I think your issue is Y - Axis showing you repeated numbers. Actual issue is it is not showing the decimal places there that means
3
3
2
2
1
1
0
should be like follow
3.5
3.0
2.5
2.0
1.5
1.0
0.0
But it doesn't show decimal places.
To resolve this go to the "Vertical Axis Properties" -> Number tab -> Choose the Category as "Default" while keeping Minimum, Maximum, Interval and Interval Type = Auto in the Axis Option tab.

Related

MySQL per shift counter query

I'm looking for some advice with a query I'm trying to write. I would like to count the occurrence (number of rows) of a column based on whose shift (6-2, 2-10 & 10-6) it falls into. The trouble is the shifts rotate every two weeks, e.g. if I just started on the 6-2 in two weeks time I would be on the 10-6. I have a query that will count said occurrence depending on the shift but I cannot get my head around how to make it count based on whos shift it happened on.
Any advice would be very helpful!
Thanks in advance.
Edit:
Table headings
Serial Number | Date & Time | Part Number | Type | Result
Edit 2 (a bit more detail):
I would like to count how many instances of unknown occur in part number for each our shifts. The part number column contains various numbers (always length 8) identifying the product running through the machine. If the machine for whatever reason doesn't see or read the part number correctly it writes unknown to the table.
e.g.
Week 13: Tom is on 6-2 shift / Alex is on 2-10 shift / Cam is on 10-6
Week 15: Alex is on 6-2 shift / Cam is on 2-10 / Tom is on 10-6 shift
Week 17: Cam is on 6-2 / Tom is on 2-10 shift / Alex is on 10-6 shift.
This pattern continues indefinitely and I want to some the number of unknowns in part number for Cam's shift, Tom's shift and Alex's shift. So I should end up with three numbers. I hope this helps.
OK, so we can get the week number in MySQL. For instance:
WEEK(<Date & Time colum>, 1)
have a look at the link above to decide which mode you need.
There are three shifts and three workers. I'll give them numbers:
Tom = 0
Alex = 1
Cam = 2
6-2 = 0
2-10 = 1
10-6 = 2
I then get this pattern:
week
shift
worker
rotation
0
0
0
0
0
1
1
0
0
2
2
0
1
0
1
1
1
1
2
1
1
2
0
1
2
0
2
2
2
1
0
2
2
2
1
2
3
0
0
3
3
1
1
3
3
2
2
3
4
0
0
0
Now we need to try and compute the 'shift' and 'worker' numbers from the 'week' number. Let's start with the 'shift'. There is no way to get it from week, we just have to define it:
SET shift0 = 0
SET shift1 = 1
SET shift2 = 2
This seems pointless, but bear with me. Now we need to compute the workers. How would we do this, given the 'week' and 'shift'? Here we have to use modulo 3:
SET worker0 = MOD('week' + 'shift0', 3)
SET worker1 = MOD('week' + 'shift1', 3)
SET worker2 = MOD('week' + 'shift2', 3)
Written full out with the WEEK() function:
SET worker0 = MOD(WEEK(<Date & Time colum>, 1) + 0, 3)
SET worker1 = MOD(WEEK(<Date & Time colum>, 1) + 1, 3)
SET worker2 = MOD(WEEK(<Date & Time colum>, 1) + 2, 3)
This is as far as I am willing to take it.
I would try to reconstruct the missing information using the above and store it in the database. Create tables to hold the workers and the shifts. Otherwise you'll have to write very complicated queries, which is not what you want.

How to calculate the moving average without window function

I am struggling with calculating 5- and 10-day moving averages. I have these fields in my table: Sno, date, and price. Based on these I will get the 5- and 10-day moving averages. Below is the table.
(Please note that I am using an older version of MySQL, in which window functions are not supported.)
2 day average: it will be calculated at row no 3 as (row1+row2)/2, row 4 will be (row2+row3)/2 and so on..
4 day average: it will be calculated at row no 5 as (row1+row2+..+row4)/4, row 6 will be row2+row3+..+row5/4 and so on..
Final: Final is based on the below formula
IF(AND(D5>E5,D4<E4),"BUY",IF(AND(D5<E5,D4>E4),"SELL","HOLD"))
Example data:
Sno(A) Date(B) Close Price(C) 2 D_AVG(D) 4 D_AVG(E) Final(F)
1 01-01-13 2316.525 0 0
2 02-01-13 2304.89 0 0
3 05-01-13 2292.1825 2310.7075 0
4 06-01-13 2279.67 2298.53625 0
5 07-01-13 2267.8325 2285.92625 2298.316875 SELL
6 08-01-13 2254.735 2273.75125 2286.14375 HOLD
7 09-01-13 2129.906 2261.28375 2273.605 HOLD
8 12-01-13 2124.264 2192.3205 2233.035875 HOLD
9 13-01-13 2119.432 2127.085 2194.184375 HOLD
10 14-01-13 2114.34 2121.848 2157.08425 HOLD

FIFO Data Matching by Each

Way out of my depth here - hoping to get help.
I use Access to arrange 3 sets of data. Promise Date, Delivery Date and Production Date to look for On Time Delivery, On Time Production, Etc.
There are no links that pair these 3 tables. We might build 5 pieces and ship 3 to one and 2 to another, so I can't do a lookup based on quantity movement.
Instead, I break each table into "Eaches" by date and match them in a FIFO fashion.
Thus the first unit produced probably belongs to the first unit shipped, etc.
This requires a tremendous amount of manual manipulation, primarily sorting by date and putting back into Access.
Is there a way to take a table, break it into eaches, and sort & count that table by date?
It would take this:
Prod / Date / Qty
X / Jan-10 / 2
Y / Feb-10 / 2
Z / Mar-10 / 2
And turn it into this:
Prod / Date / Qty / Order
X / Jan-10 / 1 / 1
X / Jan-10 / 1 / 2
Y / Feb-10 / 1 / 1
Y / Feb-10 / 1 / 2
Z / Mar-10 / 1 / 1
Z / Mar-10 / 1 / 2
I could link the tables together from there - but can't figure out how to do it outside of Excel sorting and formulas that look at rows above.

Algorithm for selecting tiles outwards center point in a 512*512 map

I've got a specific problem. My data (map) in mysql is as follows
id table_row table_col tile_type
1 1 1 0
2 2 1 0
3 3 1 0
... ... ... 0
512 512 1 0
513 1 2 0
514 2 2 0
515 3 2 0
... ... ... 0
... 512 2 0
... 1 3 0
... 2 3 0
... 3 3 0
... ... ... 0
... 512 3 0
... 1 4 0
Map is 512*512. I need to come up with an algorithm that selects tiles from the centre(or near centre 256*256) point. So it should look something like
256*256 first - once selected we can update tile_type to 1
255*256 second - update tile_type to 1
256*255 third - update tile_type to 1
257*256 fourth - update tile_type to 1
256*257 fifth - update tile_type to 1
etc. or similar, but it has to start filling in tiles from centre outwards in all directions (can be random). Any ideas appreciated
Your question lacks a few details, but I am assuming you are asking a means of generating an id that is close to the center of your 512x512 grid.
It appears your grid is enumerated in a particular manner: each column is enumerated in increasing order of table_row values, and the enumeration of columns is done in increasing order of table_col values.
Consequently, we can already know the id of the cell for which the table_row and table_col values are 256: it is 255 x 512 + 256. That is correct, because there are 255 full columns that were enumerated before enumeration started for table_col value 256, and each of those columns had 512 rows in them. Finally, within this column, we are interested in row #256.
A more generalized version of this would look like below.
((num_cols + 1) / 2 - 1) * num_rows + (num_rows + 1) / 2
You don't need to care all that much about the +1s and -1s: they are just a numerical hack to handle odd num_rows and num_cols values.
Anyways, to introduce a proximity measure, you can just use two random variables. A random variable P can represent the distance to the center in terms of colums. (i.e. how far the table_col of the point with the generated id will be from the table_col value of the center of the grid) Another random variable Q can represent the distance to the center in terms of rows.
((num_cols + 1) / 2 - 1 + P) * num_rows + ((num_rows + 1) / 2 + Q)
Then you can just generate values for P and Q based on your needs, and get the id of a cell that is P colums and Q rows away from the center of the grid.
Try Below query.
SELECT (MAX(t.`row`+1)/2), (MAX(t.`column`+1)/2) INTO #max_row, #max_col
FROM tiles t;
SELECT t.`row`, t.`column`, ceil(IF(ABS(#max_row - t.`row`) < ABS(#max_col - t.`column`), ABS(#max_col - t.`column`), ABS(#max_row - t.`row`))) as tbl_order
FROM tiles t
ORDER BY 3

Find working days between two dates in a specific format

Here is a problem. I need to find working days between two dates (without weekends). I currently found and was able to successfully use this approach:
SELECT 5 * (DATEDIFF(DateClosed, DateOpened) DIV 7) + MID('0123455501234445012333450122234501101234000123450',
7 * WEEKDAY(DateOpened) + WEEKDAY(DateClosed) + 1, 1) AS TotalResolutionTimeBusinessDays
FROM table1
This is a complex calculation based on a matrix:
| M T W T F S S
-|--------------
M| 0 1 2 3 4 5 5
T| 5 0 1 2 3 4 4
W| 4 5 0 1 2 3 3
T| 3 4 5 0 1 2 2
F| 2 3 4 5 0 1 1
S| 0 1 2 3 4 0 0
S| 0 1 2 3 4 5 0
In the matrix, the intersection of any given x and y value pair (WEEKDAY(#S) and WEEKDAY(#E) yields the difference in work days between the two values. The 49 values in the table are concatenated into the following string: 0123455501234445012333450122234501101234000123450.
This works fine for me but now I need to present difference between dates in another format. E.g.: Let's say we have two dates: StartDate = '2013-06-28 01:27:35' and EndDate = '2013-07-08 16:47:21'. If we use method described above we get 7 working days which is correct. But I need to count all the difference between dates(including hours and minutes) so it could look like
SELECT TIME_TO_SEC(TIMEDIFF('2013-07-08 16:47:21','2013-06-28 01:27:35')) / 3600 / 24
which without weekends should be value like 7.64 days.
Any suggestions how to write a calculation based on that format? Any help would be much appreciated.