berechnen Wenn ich einen De-normalisierte Tabelle wie folgt aus:Wie Zeilen mit Nullwerten in TPH fusionieren und abhängige Felder
FinanceList (NetSales,Expenses,Receivables,...etc,Discriminator)
Und ich habe eine andere Tabelle (PeriodType
), die ich das Jahr kategorisieren auf zwei Methoden:
Quarter
(4 Perioden)1-
Period1
Von Jan zu Mar2-
Period2
Von April bis Juni3-
Period3
Von Juli bis September4-
Period4
Von Oktober bis DezemberYearly
(1 Punkt) Von Januar bis Dezember
SAMPLE DATA:
Year per TypeId NetSales Expenses Receivables CompanyId
2016 2 2 164547.0000 NULL NULL 3001
2016 2 2 NULL NULL 50601.0000 3001
2016 2 2 NULL 550.4110 NULL 3001
2016 3 2 222764.0000 NULL NULL 3001
2015 3 2 264843.0000 NULL NULL 3001
2015 2 2 NULL NULL 42049.0000 3001
2015 1 3 NULL NULL 32431.0000 3001
2015 2 2 NULL 614.6200 NULL 3001
2015 2 2 187112.0000 NULL NULL 3001
2014 1 3 NULL NULL 28033.0000 3001
2016 3 2 502757.0000 NULL NULL 3002
2016 3 2 NULL NULL 56407.0000 3002
2016 2 2 429821.0000 NULL NULL 3002
2016 2 2 NULL 516.0000 NULL 3002
2016 2 2 NULL NULL 70724.0000 3002
2015 2 2 NULL 6092.0000 NULL 3002
2015 2 2 NULL NULL 96377.0000 3002
2015 2 2 598416.0000 NULL NULL 3002
2015 3 2 677026.0000 NULL NULL 3002
2015 3 2 NULL NULL NULL 3002
2015 1 3 NULL NULL 92406.0000 3002
2014 1 3 NULL NULL 84243.0000 3002
Jetzt stehen i zwei Probleme:
- Weil ich TPH (viele Nullen sind) folgen, so möchte ich alle Reihen fusionieren die haben das gleiche (
year,period,periodTypeId
) für jede Firma in einer Reihe .
EX: Statt drei Zeilen, eine für jede Tabelle (Typ):
2016 2 2 164547.0000 NULL NULL 3001
2016 2 2 NULL NULL 50601.0000 3001
2016 2 2 NULL 550.4110 NULL 3001
2015 2 2 NULL NULL 42049.0000 3001
2015 2 2 NULL 614.6200 NULL 3001
2015 2 2 187112.0000 NULL NULL 3001
Ich möchte eine Zeile wie folgt aus:
2016 2 2 164547.0000 550.4110 50601.0000 3001
2015 2 2 187112.0000 614.6200 42049.0000 3001
- Wenn ich will, eine bekommen Gleichung, die wie folgt berechnet
(The accumulated number of days in the quarter
(90 or 180 0r 270 or 360
)/(NetSales
/((Receivables in the specific quarter
+ Receivables in the previous yearly year
)/2))
So zum Beispiel wenn mögen (3001
) Firma in den period2 of quarter
diese Gleichung calc es so sein wird:
180/(164547.0000/((50601.0000 +32431.0000)/2)) =45 (for year 2016)
180/(187112.0000/((42049.0000 +28033.0000)/2)) =34 (for year 2015)
Meine Frage:
SELECT a.[Year],d.period,d.PeriodTypeId, a.NetSales,a.Expenses,a.Receivables,
c.CompanyId
FROM FinanceList a INNER JOIN Company c
ON a.CompanyId = c.CompanyId
INNER JOIN ListPeriod d
ON d.FinanceListId = a.FinanceListId
WHERE a.[Year] IN (2016,2015) AND d.PeriodTypeId IN(2,3) --The User Enter only Two Years ,PeriodTypeId ==>2 means quarter ,3 means yearly
ORDER BY c.CompanyId, a.[Year] DESC
Ich möchte Endergebnis ähnliche Zwei Datensätze für jede Firma:
Year per TypeId NetSales Expenses Receivables CompanyId equation
2016 2 2 164547.0000 550.4110 50601.0000 3001 45
2015 2 2 187112.0000 614.6200 42049.0000 3001 34
Ich benutze 'MIN' anstelle von' SUM' –