[dba-SQLServer]Sproc - Selecting from select statement

Billy Pang tuxedo_man at hotmail.com
Thu Sep 11 11:57:07 CDT 2003


David:

You need an alias for your subquery.

Try the following...

SELECT @qs =    'SELECT GateIDNo, MaxMDQ, OldMDQDate
        FROM (SELECT GateIDNo, MAX(MDQ) AS MaxMDQ, MAX(MDQDate) AS 
OldMDQDate
                        FROM dbo.tblGateStationMDQ
                        WHERE MDQ <> 0
                        GROUP BY GateIDNo
                        HAVING (MAX(MDQDate) < ''20031001'')) yo_table_name'

HTH
Billy


>From: "Mike and Doris Manning" <mikedorism at ntelos.net>
>Reply-To: dba-sqlserver at databaseadvisors.com
>To: <dba-sqlserver at databaseadvisors.com>
>Subject: RE: [dba-SQLServer]Sproc - Selecting from select statement
>Date: Thu, 11 Sep 2003 06:25:18 -0400
>
>Maybe it would help if you would explain more about why you are trying to 
>do
>this.  How is "@qs" declared and what are you trying to do with it?
>
>Doris Manning
>Database Administrator
>Hargrove Inc.
>www.hargroveinc.com <http://www.hargroveinc.com/>
>
>-----Original Message-----
>From: dba-sqlserver-bounces at databaseadvisors.com
>[mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of David
>Emerson
>Sent: Wednesday, September 10, 2003 9:19 PM
>To: dba-SQLServer at databaseadvisors.com
>Subject: [dba-SQLServer]Sproc - Selecting from select statement
>
>
>I am trying to use a select statement as the source of another select
>statement in a Sproc.
>
>The following statement works -
>
>SELECT GateIDNo, MAX(MDQ) AS MaxMDQ, MAX(MDQDate) AS OldMDQDate
>         FROM dbo.tblGateStationMDQ
>         WHERE MDQ <> 0
>         GROUP BY GateIDNo
>         HAVING (MAX(MDQDate) < '20031001')
>
>But when I do the following -
>
>SELECT @qs =    'SELECT GateIDNo, MaxMDQ, OldMDQDate
>         FROM (SELECT GateIDNo, MAX(MDQ) AS MaxMDQ, MAX(MDQDate) AS
>OldMDQDate
>                         FROM dbo.tblGateStationMDQ
>                         WHERE MDQ <> 0
>                         GROUP BY GateIDNo
>                         HAVING (MAX(MDQDate) < ''20031001''))'
>
>I get the following error -
>
>Server: Msg 170, Level 15, State 1, Line 6
>Line 6: Incorrect syntax near ')'.
>
>Using Print (@qs) I get -
>
>SELECT GateIDNo, MaxMDQ, OldMDQDate
>         FROM (SELECT GateIDNo, MAX(MDQ) AS MaxMDQ, MAX(MDQDate) as
>OldMDQDate
>                         FROM dbo.tblGateStationMDQ
>                         WHERE MDQ <> 0
>                         GROUP BY GateIDNo
>                         HAVING (MAX(MDQDate) < '20031001'))
>
>Any suggestions?
>
>
>Regards
>
>David Emerson
>DALYN Software Ltd
>25b Cunliffe St, Johnsonville
>Wellington, New Zealand
>Ph/Fax (877) 456-1205
>
>_______________________________________________
>dba-SQLServer mailing list
>dba-SQLServer at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
>http://www.databaseadvisors.com
>

_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail



More information about the dba-SQLServer mailing list