der sql-Ansicht mit erklären
brauche ich diese in einer Ansicht, aber Ihr scheint, dass Sie nicht verwenden können, erklären.
Hilfe?
declare @lastsat datetime
set @lastsat =
(select max(fechahoy) from [BigArea].[Thing].[Expanded] where DiaSemana='Saturday')
SELECT a.*,
case
when b.fecha_gestion = a.fechahoy and month(fechahoy)!=month(getdate()) then 1
when a.fechahoy = @lastsat then 1
else 0
end as FinDeMEs
FROM [BigArea].[Thing].[Expanded] a
join [BigArea].[dbo].[fechas_gestion] b
on a.fechahoy = b.fecha
Hinzugefügt
man sollte wohl nicht posten das schema öffentlich auch der Benutzername und so....
sql-server
- tag basierend auf T-SQL-Verwendung und nicht-standard zitieren [..]
man sollte wohl nicht posten das schema öffentlich auch der Benutzername und so....
InformationsquelleAutor user3074986 | 2014-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gründen der performance, ich würde geneigt sein, zu
join
im Wert:Ich auch vorschlagen, dass Sie die Verwendung von Tabellen Abkürzungen für die Tabellen-aliases.
Durch die Art und Weise, können Sie wahrscheinlich ersetzen die Logik mit einer Fenster-Funktion:
Dies ist nicht 100% garantiert, weil die
join
tun könnte, einige filtern. Aber es ist wahrscheinlich, um Ihr problem zu lösen effizient.InformationsquelleAutor Gordon Linoff
erstellen Sie eine Tabellenwertfunktion ist, dann stellen Sie Ihre Abfrage in es und in Ihren anzeigen, wählen Sie es aus,
dann aus Ihrer Sicht :
InformationsquelleAutor Farrokh
Können Sie nicht einfach ändern Sie Ihre SQL zu vermeiden, die Deklaration von Variablen?
InformationsquelleAutor TMNT2014
Wenn Sie brauchen Parameter, die Leistung & declare statements aus Ihrer Sicht dann die alternative unten überlegung Wert.
Ist eine alternative zum wickeln Sie die Logik aus Ihrer Sicht in einer gespeicherten Prozedur, die eine Tabelle erstellt. Der PROC kürzen könnte & update-oder delete & erstellen Sie die Tabelle. Wenn Ihre Tabelle groß ist, können Sie auch erstellen von Indizes auf der Tabelle.
Wenn Sie benötigen, rufen Sie die Funktion Ansicht/Tabelle in vielen Orten, könnten Sie wickeln Sie es um eine gewisse Logik, dass die Tabelle aktualisiert, wenn einige Bedingungen erfüllt sind. z.B. nur aktualisieren Sie die Tabelle einmal am Tag oder einmal alle 30min etc.
Verständlicherweise damit könnte code-overhead, da vor jeder Nutzung die Ansicht, die Sie bräuchte, um zu überprüfen, ob es aktualisiert werden muss. Aber Fazit ist, dass yopu
Hoffe, das hilft.
InformationsquelleAutor Suhel