Från ACCESS Till SQL Server 2000 Jag har förstått det, men jag hoppades att någon kunde hjälpa mig att hitta en lösning. SELECT t_songtitlar.songtitel, t_placering.Datum, Tack Andreas. Det gör nog inget. Men tror du kan åtgärda det om du skriver: Det blev kanonbra, tack för all hjälp. Du vinner på att göra den till en stored procedure med songtitel som parameter. Då slipper SQL-Servern att kompilera om frågan vid varje anrop. Jag misstänkte det. SELECT t_songtitlar.songtitel, t_placering.Datum, Från Access 200 till SQL Server 2000(LÖST)
Nu så försöker jag mig på det stora experimentet att gå över ifrån Access 2000 till SQL Server 2000.
Att det skulle bli problem det visste jag, men jag reder inte ut allting själv.
Denna SQL fungerar kanon i Access:
kod:--------------------------------------------------------------------------------
TRANSFORM Sum (t_placering.Placering) AS SumOfPlacering
SELECT t_songtitlar.songtitel, t_placering.Datum
FROM t_songtitlar INNER JOIN (t_område INNER JOIN t_placering ON
t_område.omr_Id = t_placering.omr_Id) ON t_songtitlar.ArrNo = t_placering.ArrNo
Where t_SongTitlar.songtitel = '" & Text2(1) & "'
GROUP BY t_songtitlar.songtitel, t_placering.Datum
ORDER BY t_placering.Datum DESC
PIVOT t_område.Område In ('Sverige', 'Europa', 'Världen')
--------------------------------------------------------------------------------
Men jag får problem. Jag kör den i Query Analyser och den säger så här:
kod:--------------------------------------------------------------------------------
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near 't_placering'.
Server: Msg 170, Level 15, State 1, Line 8
Line 8: Incorrect syntax near 'PIVOT'.
--------------------------------------------------------------------------------
Vad jag förstår så är det vissa saker som SQL Servern inte tycker om ifrån ACCESS.
Hur fixar jag det?Sv: Från Access 200 till SQL Server 2000
Sv: Från Access 200 till SQL Server 2000
Sum(CASE t_område.Område WHEN 'Sverige' THEN t_placering.Placering END) AS Sverige,
Sum(CASE t_område.Område WHEN 'Europa' THEN t_placering.Placering END) AS Europa,
Sum(CASE t_område.Område WHEN 'Världen' THEN t_placering.Placering END) AS Världen
FROM t_songtitlar INNER JOIN (t_område INNER JOIN t_placering ON
t_område.omr_Id = t_placering.omr_Id) ON t_songtitlar.ArrNo = t_placering.ArrNo
Where t_SongTitlar.songtitel = '" & Text2(1) & "'
GROUP BY t_songtitlar.songtitel, t_placering.Datum
ORDER BY t_placering.Datum DESC Sv: Från Access 200 till SQL Server 2000
Än en gång så har din kunskap visat sig vara uonbärlig.
Om jag kunde, så skulle jag vilja föreslå dig som månadens medlem :-)
Jag måste dock fråga dig, när jag körde denna i SQA så fick jag detta medelandet:
[kod]
(701 row(s) affected)
Warning: Null value is eliminated by an aggregate or other SET operation.
[/kod]
Jag vet att det finns null på en del poster, är det någonting att bry sig om?Sv: Från Access 200 till SQL Server 2000
CASE t_område.Område WHEN 'Sverige' THEN t_placering.Placering ELSE Null END
Eller
CASE t_område.Område WHEN 'Sverige' THEN t_placering.Placering ELSE 0 ENDSv: Från Access 200 till SQL Server 2000
Dock måste jag fortsätta att fråga.
Skulle jag vinna på att lägga detta som en stored produce(tror det heter så) och isåfall hur bör den se ut?
Jag hoppas inte att jag begär för mycket av dig nu, du har ju vissat att din kunskapp är så stor, så jag kan inte låta bli att fråga. :-)Sv: Från Access 200 till SQL Server 2000
Sv: Från Access 200 till SQL Server 2000
För mig som nyss har installerat SQL Server så låter det som rena Grekiskan. Jag har tittat på det exemplet som finns på kursen här, men jag är inte säker på att jag reder ut det....
För det kan väll inte vara som så att jag istort kan kopiera in SQL:en, och använda songtitlar som @songtitlar??Sv: Från Access 200 till SQL Server 2000
Sum(CASE t_område.Område WHEN 'Sverige' THEN t_placering.Placering END) AS Sverige,
Sum(CASE t_område.Område WHEN 'Europa' THEN t_placering.Placering END) AS Europa,
Sum(CASE t_område.Område WHEN 'Världen' THEN t_placering.Placering END) AS Världen
FROM t_songtitlar INNER JOIN (t_område INNER JOIN t_placering ON
t_område.omr_Id = t_placering.omr_Id) ON t_songtitlar.ArrNo = t_placering.ArrNo
Where t_SongTitlar.songtitel = '" & Text2(1) & "'
GROUP BY t_songtitlar.songtitel, t_placering.Datum
ORDER BY t_placering.Datum DESC
sp:
CREATE spQuery (
@titel AS VARCHAR(50)
) AS
Din query som den ser ut ovan - men ersätt text2(1) med @titel
/Emma