Forum: SQL |
Thema:
Re: Abfrage über 2 Zeiträume |
Von:
Thomas Scherner (
26.10.2005 10:04) |
Hallo zusammen,
ich habe etwas aus meinem Lehrgang gefunden. Sieht aus als das man es umbauen könnte. Probiert es dochmal damit:
use northwind
go
create procedure umsatzvergleich
as
Declare @sql as varchar(8000)
Declare @Jahr as int
Declare c cursor dynamic --Deklaration
for select distinct year(orderdate) from orders
order by 1 asc
open c -- öffnen des Cursors
fetch c into @Jahr -- Initialisierung
set @sql ='select customerID' -- fetch next from c into @no,@inhalt
while(@@fetch_status=0)
begin
set @sql = @sql + ', sum(case when year(orderdate)= ' + cast(@Jahr as varchar(4))
+ ' then unitprice*quantity else 0 end) as Umsatz' + cast(@Jahr as varchar(4))
fetch c into @Jahr
end
set @sql = @sql + ' from orders o, [order details] od
where o.orderid = od.orderid
group by customerid
order by 1 ,2 asc'
print @sql
exec (@sql)
close c -- schliessen des Cursors
deallocate c -- Freigabe des Cursors
exec umsatzvergleich
Es zeigt als Kreuztabelle den Umsatz der einzelnen Customer pro Jahr.
Gruß
Thomas
Ich bin ein Newbie . Aber jeder hat mal angefangen. Gruß & Dank Thomas
Betreff |
Von |
Datum |
|
|
Re: Abfrage über 2 Zeiträume
Hi,<br><br>vielen lieben Dank für die ganzen Ratschläge. Datumformat ist in Access #1/1/2000# :). Die Lösung hat geklappt. <br><br>Liebe Grüße<br><br>Karina |
|
|
|
|
|
G.
Guest
|
26.10.2005 15:18 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!