Pytanie : SQL zapytanie na sprawozdawczość finansowa stół

Zadawalać znajdować the dołączać SQL kod my używać.

As ty móc, swój Widok my używać. The Zapytanie ciągnąć the pierwszy pięć kolumna prosto od stół ale the szósty kolumna być wybrany oświadczenie wiązka ReportRows.

The szósty kolumna próbować the Raportowy Rząd 1,2,3,4,5,6,7 che mieć SubtotalGroup NIEOBOWIĄZUJĄCY i gdy ono dosięgać Rząd 8, ono znać że SubTotalGroup wartość być (1) i NLFinancialReportLineTypeID = 1. więc the Zapytanie powrót liczba 8 dla wszystkie the wszystkie rows.

But the zagadnienie my mieć być,
If rząd nie satisy the warunek Subtotal =1 i NLFinancialReportLineTypeID = 1
then ono musieć "NIEOBOWIĄZUJĄCY" w ten rząd i na the następny row.
So the następny Rząd w the szósty coulmn musieć "NIEOBOWIĄZUJĄCY" i wtedy the Rząd 10, 11,12 i 13 robić świetnie.

Could ty zadawalać pomagać ten Zapytanie, zadawalać pytać dla więcej szczegół jeżeli needed.

SELECT NLFinancialReportLayoutID, NLFinancialReportLineTypeID, Tytuł, ReportRow, SubtotalGroup,
(WYBRANY MINUTA (ReportRow) JAKO Expr1
OD dbo.NLFinancialReportRow JAKO S2
WHERE (SubtotalGroup = 1) I
(ReportRow >= dbo.NLFinancialReportRow.ReportRow)) JAKO G1
OD dbo.NLFinancialReportRow

Odpowiedź : SQL zapytanie na sprawozdawczość finansowa stół

Dobrze, myśleć ty jakby znać subconsiously być może, inny mądry dlaczego ty zawrzeć the różny layoutID? Ono być prawie the jedyny różnica między twój dane i kopalnia:)

Yourself W Ten Sposób, dobrze wykonany:) I ty, cieszyć się the wyzwanie, the pytanie, i z ty.

Tutaj być the uzupełniać zapytanie:

(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
WYBRANY    rr.NLFinancialReportLayoutID, rr.NLFinancialReportLineTypeID, rr. Tytuł, rr.ReportRow, rr.SubtotalGroup,
          skrzynka gdy rr.reportrow między g1.min_row i g1.reportrow wtedy g1.reportrow końcówka jako g1,
          skrzynka gdy rr.reportrow między g2.min_row i g2.reportrow wtedy g2.reportrow końcówka jako g2,
          skrzynka gdy rr.reportrow między g3.min_row i g3.reportrow wtedy g3.reportrow końcówka jako g3,
          skrzynka gdy rr.reportrow między g4.min_row i g4.reportrow wtedy g4.reportrow końcówka jako g4,
          skrzynka gdy rr.reportrow między g5.min_row i g5.reportrow wtedy g5.reportrow końcówka jako g5,
          skrzynka gdy rr.reportrow między g6.min_row i g6.reportrow wtedy g6.reportrow końcówka jako g6,
          skrzynka gdy rr.reportrow między g7.min_row i g7.reportrow wtedy g7.reportrow końcówka jako g7,
          skrzynka gdy rr.reportrow między g8.min_row i g8.reportrow wtedy g8.reportrow końcówka jako g8,
          skrzynka gdy rr.reportrow między g9.min_row i g9.reportrow wtedy g9.reportrow końcówka jako g9
OD      NLFinancialReportRow  RR
lewy zewnętrzny łączyć (WYBRANY  NLFinancialReportLayoutID, ReportRow, isnull ((wybrany wierzchołek (1) reportrow OD NLFinancialReportRow s2 DOKĄD S2.NLFinancialReportLayoutID = s1.NLFinancialReportLayoutID i isnull (s2.SubtotalGroup, (0)) >= (1) i s2.reportrow < s1="">= 2 i s2.reportrow < s1="">= 3 i s2.reportrow < s1="">= 4 i s2.reportrow < s1="">= 5 i s2.reportrow < s1="">= 6 i s2.reportrow < s1="">= 7 i s2.reportrow < s1="">= 8 i s2.reportrow < s1="">= 9 i s2.reportrow < s1=""> (0)
IŚĆ
Inne rozwiązania  
 
programming4us programming4us