Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
darthasshat
Starting Member
17 Posts |
Posted - 2005-03-14 : 02:17:39
|
Hey everyone, I'm trying to get my feet wet with stored procedures and I'm having a heck of a time. I'm trying to return a set of records from mulitple tables in multiple databases. Can this be done? I wrote the procedure and the syntax checks out but when I run it in query analyzer, it craps out. I get the following error:Server: Msg 208, Level 16, State 1, Procedure SalesTest, Line 9Invalid object name 'RSID'.The RSID table does indeed exist in the EMP database. Below is the proc I'm wokring on.CREATE PROCEDURE SalesTest@startDate SMALLDATETIME,@endDate SMALLDATETIME,@salesId INT ASSELECT DISTINCT LNAME & ", " & FNAME AS AGENT, SLM, ACCT, UDATE, prodGrpNameFROM ICOMS.DBO.COMPLETE, ICOMS.DBO.PRODGRP, EMP.DBO.RSID, EMP.DBO.MAIINNER JOIN prodGrp ON COMPLETE.fkProductUID = prodGrp.fkProductUIDINNER JOIN COMPLETE ON RSID.VALUE = COMPLETE.SLMINNER JOIN RSID ON RSID.FKEMPUID = MAI.PKEMPUIDAND UDATE >= @StartDateAND UDATE <= @EndDateAND SLM = @salesIdORDER BY LNAME & ", " & FNAME, SLM, ACCT, UDATE, prodGrpNameGO Here is my original query that works in Access,PARAMETERS [KMA] Short, [START DATE] DateTime, [END DATE] DateTime;SELECT mai.lname & ", " & mai.fname AS EMPLOYEE, COMPLETE.ACCT, COMPLETE.UDATE, prodGrp.prodGrpNameFROM (prodGrp INNER JOIN COMPLETE ON prodGrp.fkProductUID = COMPLETE.FKPRODUCTUID) INNER JOIN ((rsid INNER JOIN mai ON rsid.FKEMPUID = mai.PKEMPUID) INNER JOIN (ldp INNER JOIN pkDept ON ldp.FKDEPTUID = pkDept.PKDEPTUID) ON mai.PKEMPUID = ldp.FKEMPUID) ON (COMPLETE.SITE = rsid.SITE) AND (COMPLETE.SLM = rsid.VALUE)WHERE (((COMPLETE.UDATE) Between [start date] And [end date]) AND ((prodGrp.fkProdGrpUID) In (13,15,28,36,47,48,70,52,71,73)) AND ((ldp.FKDEPTUID)=21) AND ((ldp.STARTDATE)<=Date()) AND ((ldp.ENDDATE)>=Date()))ORDER BY mai.lname & ", " & mai.fname, prodGrp.prodGrpName; If anyone can help me out, I would greatly appreciate it. Thanks! |
|
|
spirit1
Cybernetic Yak Master
11752 Posts |
Posted - 2005-03-14 : 05:38:08
|
you'll have to put aliases with columns.SELECT DISTINCT LNAME & ", " & FNAME AS AGENT, SLM, ACCT, UDATE, prodGrpNameFROM ICOMS.DBO.COMPLETE C join ICOMS.DBO.PRODGRP P on C.fkProductUID = P.fkProductUID join EMP.DBO.RSID R on R.VALUE = C.SLM join EMP.DBO.MAI M on R.FKEMPUID = M.PKEMPUIDwhere UDATE >= @StartDate AND UDATE <= @EndDate AND SLM = @salesIdORDER BY LNAME & ", " & FNAME, SLM, ACCT, UDATE, prodGrpName Go with the flow & have fun! Else fight the flow |
 |
|
|
rockmoose
SQL Natt Alfen
3279 Posts |
Posted - 2005-03-14 : 07:33:32
|
A side note...LNAME + ', ' + FNAMEYou have quite a few tables in the from clause...I think something like this will fit the billFROM ICOMS.DBO.PRODGRP AS prodgrpINNER JOIN ICOMS.DBO.COMPLETE AS complete ON prodgrp.fkProductUID = complete.fkProductUIDINNER JOIN EMP.DBO.RSID AS rsid ON complete.SLM = rsid.VALUEINNER JOIN EMP.DBO.MAI AS mai ON rsid.FKEMPUID = mai.PKEMPUID rockmoose |
 |
|
|
darthasshat
Starting Member
17 Posts |
Posted - 2005-03-16 : 03:02:44
|
| It worked beautifully. Thanks for the help! |
 |
|
|
|
|
|
|
|