PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Hébergement serveur > comp.db.ms-sqlserver > Table variables and joins
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Table variables and joins

Réponse
 
LinkBack Outils de la discussion
Vieux 31/03/2008, 19h57   #1
hharry
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Table variables and joins

Hello All,

I have this table:

CREATE TABLE [dbo].[AMS](
[AMSFGGID] [int] IDENTITY(1,1) NOT NULL,
[AMSDESCRIPTION] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

with these values:

INSERT INTO AMS (AMSDESCRIPTION)
VALUES ('TEST DESC 1')
INSERT INTO AMS (AMSDESCRIPTION)
VALUES ('TEST DESC 2')

I also have a script which creates a table variable:

DECLARE @RESULTS Table
(
ROWID INT IDENTITY(1,1),
AMSFGGID INT,
QTYSOLD FLOAT
)
INSERT @RESULTS
(
AMSFGGID,
QTYSOLD
)
VALUES
(
1, 300
)
INSERT @RESULTS
(
AMSFGGID,
QTYSOLD
)
VALUES
(
1, 700
)

I'm trying to get construct a join which will sum the quantities sold
for each AMS record, something like:

SELECT
A.AMSFGGID, S.TotalSales
FROM
AMS A
INNER JOIN
(SELECT
AMSFGGID, SUM(QTYSOLD) as TotalSales
FROM
@RESULTS
GROUP BY
AMSFGGID) S
ON
A.AMSFGGID = S.AMSFGGID

Pointers appreciated!

  Réponse avec citation
Vieux 31/03/2008, 20h24   #2
Plamen Ratchev
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Table variables and joins

I am not sure I understand this correctly, as you query will actually
produce the summary quantity. If you mean to show summary quantity even for
items that do not have quantity in the results table, then you can use left
join:

SELECT A.amsfggid,
SUM(COALESCE(R.qtysold, 0)) AS TotalSales
FROM AMS AS A
LEFT OUTER JOIN @Results AS R
ON A.amsfggid = R.amsfggid
GROUP BY A.amsfggid


HTH,

Plamen Ratchev
http://www.SQLStudio.com

  Réponse avec citation
Vieux 31/03/2008, 20h24   #3
Jason Lepack
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Table variables and joins

select
a.amsfggid,
a.amsdescription,
sum(b.qtysold)
from
ams a
inner join @results b
on b.amsfggid = a.amsfggid
group by
a.amsfggid, a.amsdescription

On Mar 31, 2:57 pm, hharry <paulquig...@nyc.com> wrote:
> Hello All,
>
> I have this table:
>
> CREATE TABLE [dbo].[AMS](
> [AMSFGGID] [int] IDENTITY(1,1) NOT NULL,
> [AMSDESCRIPTION] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS
> NULL
> ) ON [PRIMARY]
>
> GO
> SET ANSI_PADDING OFF
>
> with these values:
>
> INSERT INTO AMS (AMSDESCRIPTION)
> VALUES ('TEST DESC 1')
> INSERT INTO AMS (AMSDESCRIPTION)
> VALUES ('TEST DESC 2')
>
> I also have a script which creates a table variable:
>
> DECLARE @RESULTS Table
> (
> ROWID INT IDENTITY(1,1),
> AMSFGGID INT,
> QTYSOLD FLOAT
> )
> INSERT @RESULTS
> (
> AMSFGGID,
> QTYSOLD
> )
> VALUES
> (
> 1, 300
> )
> INSERT @RESULTS
> (
> AMSFGGID,
> QTYSOLD
> )
> VALUES
> (
> 1, 700
> )
>
> I'm trying to get construct a join which will sum the quantities sold
> for each AMS record, something like:
>
> SELECT
> A.AMSFGGID, S.TotalSales
> FROM
> AMS A
> INNER JOIN
> (SELECT
> AMSFGGID, SUM(QTYSOLD) as TotalSales
> FROM
> @RESULTS
> GROUP BY
> AMSFGGID) S
> ON
> A.AMSFGGID = S.AMSFGGID
>
> Pointers appreciated!


  Réponse avec citation
Vieux 01/04/2008, 15h10   #4
--CELKO--
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Table variables and joins

>> Pointers appreciated! <<

FWIW, you should soon be able to build a table constant using a CTE
and a VALUES() construct, Might want to make a note in the code for
the guy who will be maintaining it later.

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 22h47.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,13535 seconds with 12 queries