Hi,
I'm trying to do calculations in a SQL statement, but depending on one
variable (a.type in example) I'll need to pull another variable from
seperate tables.
Here is my code thus far:
select a.DeptCode DeptCode,
a.Type Type,
(a.ExpenseUnit / (select volume from TargetData b where b.type =
a.type)
) Expense
From calc1 a
The problem... a.Type can be FYTD, Budget, or Target... and depending
on which one it is, I need to make b either FYTDData, TargetData, or
BudgetData. I'm thinking a case statement might do the trick, but I
can't find any syntax on how to use Case in an MS SQL statement. Even
If statements will work (if that's possible), though case would be
less messy.
Any suggestions would be much appriciative. Thanks...
Alex. 4 65457
Hi
Is it not totally clear how you are joining these tables, but this may be a
start.
SELECT a.DeptCode DeptCode,
a.Type Type,
a.ExpenseUnit / ( CASE WHEN a.Type = 'FYTD' THEN b.volume
WHEN a.Type = 'Budget' THEN
c.volume
WHEN a.Type = 'Target' THEN
d.volume
ELSE 1 END ) AS Expense
From calc1 a
LEFT JOIN FYTDData d ON b.type = a.type
LEFT JOIN BudgetData d ON c.type = a.type
LEFT JOIN TargetData d ON d.type = a.type
John
"Alex" <al**@totallynerd.com> wrote in message
news:2b**************************@posting.google.c om... Hi,
I'm trying to do calculations in a SQL statement, but depending on one variable (a.type in example) I'll need to pull another variable from seperate tables.
Here is my code thus far:
select a.DeptCode DeptCode, a.Type Type, (a.ExpenseUnit / (select volume from TargetData b where b.type = a.type) ) Expense From calc1 a
The problem... a.Type can be FYTD, Budget, or Target... and depending on which one it is, I need to make b either FYTDData, TargetData, or BudgetData. I'm thinking a case statement might do the trick, but I can't find any syntax on how to use Case in an MS SQL statement. Even If statements will work (if that's possible), though case would be less messy.
Any suggestions would be much appriciative. Thanks...
Alex.
Alex (al**@totallynerd.com) writes: The problem... a.Type can be FYTD, Budget, or Target... and depending on which one it is, I need to make b either FYTDData, TargetData, or BudgetData. I'm thinking a case statement might do the trick, but I can't find any syntax on how to use Case in an MS SQL statement.
Books Online is a very resource for this kind of information, just
look up CASE. Be careful to notice that this is not a statement, but
an expression.
--
Erland Sommarskog, SQL Server MVP, so****@algonet.se
Books Online for SQL Server SP3 at http://www.microsoft.com/sql/techinf...2000/books.asp
"John Bell" <jb************@hotmail.com> wrote in message news:<3f**********************@reading.news.pipex. net>... Hi
Is it not totally clear how you are joining these tables, but this may be a start.
SELECT a.DeptCode DeptCode, a.Type Type, a.ExpenseUnit / ( CASE WHEN a.Type = 'FYTD' THEN b.volume WHEN a.Type = 'Budget' THEN c.volume WHEN a.Type = 'Target' THEN d.volume ELSE 1 END ) AS Expense From calc1 a LEFT JOIN FYTDData d ON b.type = a.type LEFT JOIN BudgetData d ON c.type = a.type LEFT JOIN TargetData d ON d.type = a.type
John
Hi John...
I did get it going yesterday after spending about an hour testing
syntax. Below is the final SQL statement. Works great!
select a.DeptCode,
a.Type,
(((a.TotalPaidHoursUnit/(Case a.type
When 'FYTD04' Then null
When 'Budget' Then (select b.monthly from it_budvol b where
b.deptcode = a.deptcode)
When 'Prior Year' Then (select b.avemonth from it_pyvolume b
where b.deptcode = a.deptcode)
Else (select b.AveMonthVolume from solucient_dss b where
b.deptcode = a.deptcode and b.type = a.type)
end)
- a.FYTD_TotalPaidHoursUnit ) / a.Hours) * a.FYTD_Volume) LaborFTE
From dss_calc a
Thanks for the feedback.
Alex. al**@totallynerd.com (Alex) wrote in message news:<2b**************************@posting.google. com>... Hi John...
I did get it going yesterday after spending about an hour testing syntax. Below is the final SQL statement. Works great!
select a.DeptCode, a.Type, (((a.TotalPaidHoursUnit/(Case a.type When 'FYTD04' Then null When 'Budget' Then (select b.monthly from it_budvol b where b.deptcode = a.deptcode) When 'Prior Year' Then (select b.avemonth from it_pyvolume b where b.deptcode = a.deptcode) Else (select b.AveMonthVolume from solucient_dss b where b.deptcode = a.deptcode and b.type = a.type) end) - a.FYTD_TotalPaidHoursUnit ) / a.Hours) * a.FYTD_Volume) LaborFTE
From dss_calc a
Thanks for the feedback.
Alex.
Hi
You should make sure that you are not dividing by zero.
John This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Joe Stevenson |
last post by:
Hi all,
I skimmed through the docs for Python, and I did not find anything like
a case or switch statement. I assume there is one and that I just
missed it. Can someone please point me to the...
|
by: Bob |
last post by:
I need to know if there is a better way to construct this SQL statement.
(Error handling is omitted)
MS SQL Server 2000
Insert into FSSUTmp
Select a.acct_no, a.ac_nm, a.ac_type, 10, -1,
-1...
|
by: web developer |
last post by:
hi
I need to write a stored procedure that takes input parameters,and
according to these parameters the retrieved fields in a select
statement are chosen.
what i need to know is how to make the...
|
by: Bryan |
last post by:
I am executing a case statement list below,
USE Northwind
SELECT
MONTH(OrderDate) AS OrderMonth,
SUM(CASE YEAR(OrderDate)
WHEN 1996 THEN 1
ELSE 0
END) AS c1996,
|
by: TheKeith |
last post by:
I just wrote the following script for something I'm working on:
----------------------------------------------------------------------------
-------------------
<html>
<head>
<script...
|
by: jim_geissman |
last post by:
What does "conditional" mean as a command? sp_who2 reports this for
some sessions, along with "insert" etc.
Thanks,
Jim Geissman
|
by: clueless_google |
last post by:
hello. i've been beating my head against a wall over this for too
long.
setting the variables 'z' or 'y' to differing numbers, the following
'if/else' code snippet works fine; however, the ...
|
by: mux |
last post by:
Hi
I found out that the following piece of code throws an error.
1 #include "stdio.h"
2
3 int main()
4 {
5 int a,b;
6 a= 10;
|
by: dev_cool |
last post by:
Hello friends,
I'm a beginner in C programming. One of my friends asked me to write a
program in C.The purpose of the program is print 1 to n without any
conditional statement, loop or jump.
...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
| |