i working on school project , i'm stuck.
the requirement write single query gathers data 9 different tables , returns result.
it needs client names, contract names, project names, employees logged hours april, total hours logged employee, employee rate, charges per employee projects, , contact names each contract.
 (i know, that's lot of data pull.)
the tables are:
 clients    ------------------------------- clientid | commonname     contracttypes    --------------------------------------   contracttypeid | contracttype      contracts    ---------------------------------------------------------   contractid | clientid (fk) | contracttype (fk)      projects    ---------------------------------------------------   projectid | projectname | contractid (fk)      contacts    -----------------------------------------   contactid | firstname | lastname     contractcontacts    --------------------------------------------------   contractid (pk/fk) | contactid (pk/fk)      employees    -----------------------------------   empid | name | titleid | level      billingrates    ----------------------   titleid | level | rate     workhours    ----------------------------   empid | hoursworked     i ran following, resulted on 23,000 rows - not needed:
select     clients.commonname, projects.projectname, employees.firstname,      employees.lastname, sum(workhours.hoursworked) totalhours,      billingrates.rate,contacts.firstname, contacts.lastname,         contacts.addrline1, contacts.addrline2, contacts.city,     contacts.state_province, contacts.zip     employees, billingrates, clients, projects, workhours, contracts, contacts group     clients.commonname, projects.projectname, employees.firstname,      employees.lastname, billingrates.rate, contacts.firstname,     contacts.lastname, contacts.addrline1, contacts.addrline2,     contacts.city, contacts.state_province, contacts.zip   i have no idea how pull in data 1 query generate 1 report.
i received on generating query return employees logged hours april, total hours logged employee, , charges per employee projects in following:
select     employees.empid,     sum(workhours.hoursworked) 'totalhours',    firstname, lastname,     isnull(sum(workhours.hoursworked), 0) * isnull(min(rate), 0) 'totalrate'     employees  inner join     workhours on employees.empid = workhours.empid left join      billingrates on employees.titleid = billingrates.titleid                 , employees.level = billingrates.level     wh_month = 4 group     lastname, firstname, employees.empid   i assume query nested outer query, don't know how construct it.
would able assist writing query?
you can add many joins need;
from     contracts     inner join contractcontacts on contracts.contractid = contractcontacts.contractid     inner join contracttypes on contracts.contracttype = contracttypes.contracttype     inner join contacts on contactcontacts.contactid = contacts.contactid     inner join clients on contracts.clientid = clients.clientid     ...   just add tables distinct relation have. , check if needs left outer join instead of inner join example, meaning right-side table might not have rows , appear null instead of suppressing whole row.
Comments
Post a Comment