Kom ihåg mig?
Home Menu

Menu


SQL group by

Ämnesverktyg Visningsalternativ
Oläst 2010-04-08, 22:20 #1
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
Exclamation SQL group by

Hejsan,

Nu börjar jag bli galen och behöver lite hjälp på traven!

Jag får följande fel:

Error Message: Column 'dbo.tblTypeOfCost.name' is invalid in the
select list because it is not contained in either an aggregate
function or the GROUP BY clause.

med följande sql sats:
SELECT dbo.tblTypeOfCost.name, dbo.tblOffer.amount, dbo.tblOffer.campaignID, dbo.tblOffer.offerID
FROM dbo.tblOffer INNER JOIN
dbo.tblTypeOfCost ON dbo.tblOffer.typOfCostID = dbo.tblTypeOfCost.typeOfCostID
GROUP BY dbo.tblOffer.typOfCostID

Har testat att ta bort name och lägga till typOfCostID i select men får det inte att fungera!

Någon som kan se felet?

Tack på förhand!
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-04-08, 22:26 #2
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
SELECT dbo.tblTypeOfCost.name, dbo.tblOffer.amount, dbo.tblOffer.campaignID, dbo.tblOffer.offerID
FROM dbo.tblOffer INNER JOIN
dbo.tblTypeOfCost ON dbo.tblOffer.typOfCostID = dbo.tblTypeOfCost.typeOfCostID
GROUP BY dbo.tblOffer.typOfCostID, dbo.tblTypeOfCost.name, dbo.tblOffer.amount, dbo.tblOffer.campaignID, dbo.tblOffer.offerID

Tyvärr kommer det nog inte ge det resultat du önskar...
digiArt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-04-08, 22:41 #3
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
digiArt: Tack för ditt snabba svar men det gav inte det resultatet jag vela ha

Det jag vill är att kunna gruppera ihop så jag får summorna tillsammans och baserat på namnen t.ex.

namn1 - 2000
(namn1 - 1000, namn1 - 1000)
namn2 - 16000
(namn2 - 8000, namn2 - 8000)
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-04-08, 23:37 #4
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Kan du lägga ut CREATE statement så man kan skapa tabellerna själv, lite trött så jag orkar inte skapa tabellen manuellt...
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-04-08, 23:59 #5
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
Yeps här kommer dom

CREATE TABLE [dbo].[tblOffer](
[offerID] [int] IDENTITY(1,1) NOT NULL,
[offerNO] [varchar](255) NULL,
[supplierID] [int] NULL,
[amount] [varchar](255) NULL,
[typOfCostID] [int] NULL,
[campaignID] [int] NULL,
CONSTRAINT [PK_tblOffer] PRIMARY KEY CLUSTERED
(
[offerID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]





CREATE TABLE [dbo].[tblTypeOfCost](
[typeOfCostID] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](255) NULL,
CONSTRAINT [PK_tblTypeOfCost] PRIMARY KEY CLUSTERED
(
[typeOfCostID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-04-09, 01:04 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Jag testkör på MySQL 5.1 i Ubuntu 9.10 men får syntaxfel på rad 1 (dvs "[dbo].[tblOffer](") ....

Senast redigerad av Conny Westh den 2010-04-09 klockan 01:10
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-04-09, 06:43 #7
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
SELECT dbo.tblTypeOfCost.name, SUM(CAST(dbo.tblOffer.amount as int) )
FROM dbo.tblOffer INNER JOIN
dbo.tblTypeOfCost ON dbo.tblOffer.typOfCostID = dbo.tblTypeOfCost.typeOfCostID
GROUP BY dbo.tblOffer.typOfCostID, dbo.tblTypeOfCost.name

Lagra din amount som decimal(28,6) eller liknande så slipper du köra en cast.
digiArt är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017