Some CFML Stuffs Me Do

From: Ken (SHIELDSIT) 6 May 2011 10:39
To: CHYRON (DSMITHHFX) 23 of 75
I suppose but I'm a sucker for automation!
From: CHYRON (DSMITHHFX) 6 May 2011 10:54
To: Ken (SHIELDSIT) 24 of 75
As long as it breaks and causes extreme frustration and panic...
From: Ken (SHIELDSIT) 6 May 2011 10:55
To: CHYRON (DSMITHHFX) 25 of 75
When I want to show my power I reboot the mail server!
From: Ken (SHIELDSIT) 6 May 2011 11:59
To: Peter (BOUGHTONP) 26 of 75

I think I'm approaching this from the wrong angle. I think I'd be better served if I put my effort into the SQL Server Reporting Service.

 

Have you or anyone here used it?

From: Peter (BOUGHTONP) 6 May 2011 12:12
To: Ken (SHIELDSIT) 27 of 75
I've not used it - no idea if anyone else has though.
From: Ken (SHIELDSIT) 6 May 2011 14:33
To: Peter (BOUGHTONP) 28 of 75

I can fumble through most of it, but I'm having a hard time getting it to perform some math and getting it to let me select what I want from the database.

 

Think I'm going to buy a book about it.

From: CHYRON (DSMITHHFX) 7 May 2011 01:43
To: Ken (SHIELDSIT) 29 of 75

The point is not to show YOUR power (which frankly, there is none, but I'm not telling), but THEIR abject helplessness (of which there is a copious, abundant and boundless supply, until the end of time, oh lord).

 

The easiest way to do that is to go out and get smashed, then show up for work the next day. Enjoy.

From: Peter (BOUGHTONP) 7 May 2011 01:59
To: CHYRON (DSMITHHFX) 30 of 75
I'm not sure showing up for work smashed is going to do much on a weekend.
From: CHYRON (DSMITHHFX) 7 May 2011 17:08
To: Peter (BOUGHTONP) 31 of 75
It's going to do great things. GREAT. THINGS. Oh yee of little fathe...
From: Ken (SHIELDSIT) 9 May 2011 15:36
To: Peter (BOUGHTONP) 32 of 75

Pete - These numbers are what I get if I query a table in my db. How can I add ONLY the positive numbers and ignore the negatives?

 

-114.68
79.50
-8.48
2221.93
3994.88
-142.04
2655.45
-157.36
1084.00
-108.40
986.85
-58.48
15258.80

From: Peter (BOUGHTONP) 9 May 2011 16:07
To: Ken (SHIELDSIT) 33 of 75
Uh.... like this:

Select sum (colname)
from table
where colname > 0

?
From: Ken (SHIELDSIT)10 May 2011 11:57
To: Peter (BOUGHTONP) 34 of 75
What is your schedule looking like this fine day? I need you to hold my hand and whisper in my ear!
From: Peter (BOUGHTONP)10 May 2011 12:20
To: Ken (SHIELDSIT) 35 of 75
Dunno. Ask me again in an hour, when I've eaten and might be more awake.
From: Ken (SHIELDSIT)10 May 2011 12:22
To: Peter (BOUGHTONP) 36 of 75
k thanks you handsome man!
From: Ken (SHIELDSIT)10 May 2011 13:38
To: Peter (BOUGHTONP) 37 of 75

OK I'm having a hell of a time getting the summing to work, do you think you can assist?

 

I've attached the code and the output thus far.

 

Thanks!

From: Ken (SHIELDSIT)10 May 2011 13:50
To: Peter (BOUGHTONP) 38 of 75
Hmm, this is kinda strange. It you look at the ungrouped output you can see that the numbers returned are correct. So where am I messing up Peter?

I've changed my code a bit: I moved the bit that zero's out the total and tests for a negative to the query output area.

code:
<table cellpadding="2" align="center">
			<tr>
				<td align="center"><font face="arial" size="4"><b>Kiln Number</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Batch Date</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Species</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Footage In</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Value In</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Footage Out</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Value Out</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Variance</b></font></td>
				<td align="center"><font face="arial" size="4"><b>Absorption</b></font></td>
				<td align="center"><font face="arial" size="4"><b>MFG Variance</b></font></td>
			</tr>
 
<!---
Loop the output and display it
--->
	<CFOUTPUT QUERY="kilns">
	<cfset intotal = 0>
<cfif rudTotal GT 0>
	<cfset intotal = intotal + rudTotal>
</cfif>			
<!---
Set values in our variables
--->
 
			<TR>
				<td align="center"><font face="arial" size="4">#ruhID#</TD>
				<td align="center"><font face="arial" size="4">#DateFormat(ruhDate, "MM/DD/YYYY")#</TD>
				<td align="center"><font face="arial" size="4">#MID(rudProductID,6,2)#</TD>
				<td align="center"><font face="arial" size="4">#NumberFormat(ConsumedVol, ",")#</TD>
				<td align="center"><font face="arial" size="4">#intotal#</td>
				<td align="center"><font face="arial" size="4">#NumberFormat(ProducedVol, ",")#</TD>
			</TR>
	</CFOUTPUT>
</TABLE>
Attachments:
From: Ken (SHIELDSIT)10 May 2011 13:53
To: Peter (BOUGHTONP) 39 of 75
I know why it's doing it, but my head hurts and I can't figure out how to fix it. I'm zeroing the total out every loop. How the fuck to I fix it? Make another variable to hold the grand total?
From: Ken (SHIELDSIT)10 May 2011 14:04
To: Ken (SHIELDSIT) 40 of 75
Just as I suspected. If I ungroup them I get the correct value. Grouped is wrong. Any idea how to get what I want?

This is the code that I've changed.

code:
CFOUTPUT QUERY="kilns" GROUP="ruhID">
	<cfset intotal = 0>
<cfif rudTotal GT 0>
	<cfset intotal = intotal + rudTotal>
	<cfset Total_Value_In = Total_Value_In + intotal>
</cfif>			
Attachments:
From: Peter (BOUGHTONP)10 May 2011 14:41
To: Ken (SHIELDSIT) 41 of 75
Still don't feel entirely awake, so I might be missing something stupid, but for your main query you don't need GROUP BY unless your SELECT contains an aggregate for that query, which it doesn't.

(Your two aggregates, ConsumedVol and ProducedVol, are both in sub-queries, which would have their own GROUP BY if they needed it, but they don't since they're totals)


For the totalling bit of code... well, when you group on cfoutput you need an inner loop to do the more specific bit - and, more importantly, you need to ORDER BY the grouped bit first, otherwise you tend not to get what you're after.

So try this...
code:
<cfquery name="KilnsById" dbtype="query">
	SELECT *
	FROM Kilns
	ORDER BY ruhId ASC
</cfquery>
 
<cfset TotalTotal = 0 />
<cfoutput query="KilnsById" group="ruhId">
	<cfset InTotal = 0 />
	<cfoutput>
		<cfset InTotal += rudTotal />
	</cfoutput>
	<cfset TotalTotal += InTotal />
</cfloop>



Oh... except InTotal is needed for final table... so you probably actually want this:

code:
<cfquery name="KilnsById" dbtype="query">
	SELECT *
	FROM Kilns
	ORDER BY ruhId ASC
</cfquery>
 
<cfset TotalTotal = 0 />
<cfset InTotal = [] />
<cfoutput query="KilnsById" group="ruhId">
	<cfset InTotal[ruhId] = 0 />
	<cfoutput>
		<cfset InTotal[ruhId] += rudTotal />
	</cfoutput>
	<cfset TotalTotal += InTotal[ruhId] />
</cfloop>


Then do #InTotal[ruhId]# in the final td bit.

Maybe.

I'm not entirely convinced I'm not completely overcomplicating things here. :S
EDITED: 10 May 2011 14:42 by BOUGHTONP
From: Ken (SHIELDSIT)10 May 2011 14:48
To: Peter (BOUGHTONP) 42 of 75
Can you tell me where I want to put that bit of code in my code? I've confused myself!