i.Notes, SUM(l.Discount) AS Dcount, i.DiscDate, i.DueDate, i.UIMth, i.UISeq, poj.Job, poj.Description, i.UniqueAttchID, i.ReviewerGroup AS RevGrp, SUM(l.GrossAmt)
AS GrossAmt, v.PayTerms, dbo.HQPT.DiscRate, i.InvTotal, DATEDIFF(day,getdate(),i.DiscDate) AS DiscDays,
--Trying to use the DiscDays and Dcount here
if DiscDays, between '20' and '11' THEN sum(Dcount) as YelDisc
Ich hoffe, dass mir jemand hier helfen kann. Ich bin sehr neu in T-SQL. Ich glaube, was ich brauche, hier ist eine Unterabfrage, aber ich bin nicht sicher, wie es zu formatieren korrektWählen Sie Alias in derselben Select-Anweisung
Danke
Ich habe ein paar zusätzliche Fälle zur Klarstellung hinzugefügt –
Tudor danke für Ihre Hilfe, Ihr Vorschlag funktionierte genau so, wie ich es brauchte. Die zusätzliche Fallanweisung war hilfreich. Ich habe noch eine Frage. Wie würde die Aussage aussehen, wenn ich wollte, dass "11" und "20" YelDisc und "20" und "40" GreDisc sind? Ich weiß, ich kann einfach alles innerhalb der gleichen Fallaussage kuppeln oder muss ich einen separat für die GreDisc schreiben? Danke noch einmal!! – Steve
Sie müssten es in separaten Spalten in separaten Fall Statemets als solche setzen: 'case wenn DATEDIFF (Tag, getdate(), i.DiscDate) zwischen '11' und '20' DANN Summe (Dcount) sonst Null Ende als YelDisc, Fall wenn DATEDIFF (Tag, getdate(), i.DiscDate) zwischen '20' und '40' DANN sum (Dcount)/2 else null als GreDisc 'und die Spalten nach nicht-Nullen in der where-Klausel suchen. Der Grund dafür ist, dass Sie Ihr Schema (d. H. Spaltennamen und Datentypen) nicht abhängig von den abgerufenen Daten ändern sollten. –