5 tablodan oluşan bir sonuç kümesi oluşturmak için 3 tabloyu sorguladığım büyük bir SQL Server 2012 veritabanım var.Iterative Union TÜMÜ
Bu sorguyu bir WHILE döngüsünde ve her döngüde elde edilen sonuç kümelerini "UNION ALL" içinde tekrarlamak istiyorum. Bu yineleme, son 6 yıl içinde artacak ve bugünün tarihinde duracak olan @this_date değişkeninde olacaktır. Her yinelemede, SELECT tarafından farklı bir sonuç kümesi elde edilecektir. Yukarıdaki
Declare @the_date as Date,
@to_date as Date
-- I setup the above dates, @the_date being 6 years behind @to_date
-- Want to loop for each day over the 6-year period
WHILE (@the_date <= @to_date)
BEGIN
-- the basic select query looks like this
Select Table1.Field-1, Table2.Field-2 ...
FROM Table1
Inner Join Table2 ...
On (..etc.. )
-- the JOIN conditions are based on table.attributes which are compared with
-- @the_date to get a different result set each time
-- now move the date up by 1
DateAdd(Day, +1, @the_date)
-- want to concatenate the result sets
UNION ALL
END
bana bir sözdizimi hatası verir:
Yani şöyle saklı yordam kod çalışıyorumIncorrect syntax near the keyword 'Union'.
benim soruna bir çözüm üzerinde herhangi fikirleri hoş olurdu - Teşekkürler.
Döngüden elde edilen sonucu değişken bir tabloya ekleyin ve bundan seçim yapın. – artm
Neyi başarmak istiyorsunuz? Kayıtları @ this_date'den ve 6 sene geçmeden mi almak istiyorsunuz? Amacınızı açık bir şekilde ifade ederseniz, herhangi bir döngü içermeyen bir cevap verebilirim. –
'@ this_date' sorgunuzda nasıl kullanılır? – Squirrel