Vraag : SQL vraag op een financiële verslagleggingslijst

Gelieve te vinden de SQL code in bijlage wij hebben gebruikt.

As u kunt zien, zijn een Mening wij gebruiken. De vraag trekt de eerste vijf kolommen rechtstreeks van een lijst maar de zesde kolom is een uitgezochte verklaring om een bos van kolom ReportRows.

The zesde te groeperen probeert om Rijen 1.2.3.4.5.6.7 te groeperen van het Rapport die een SubtotalGroup als ONGELDIG hebben en wanneer het Rij 8 bereikt, weet het dat de waarde SubTotalGroup 1 en NLFinancialReportLineTypeID = 1 is. zodat is de winst nummer 8 van de Vraag voor al bovengenoemde rows.

But de kwestie wij hebben,
If een rij niet satisy de voorwaarde van Subtotaal =1 en NLFinancialReportLineTypeID = 1
then het „ONGELDIG“ in die rij zou moeten drukken en op volgende row.
So de negende bewegen De rij in de zesde zou coulmn „ONGELDIG moeten drukken“ en toen doen Rijen 10, 11.12 en 13 boete.

Could u te staan gelieve me bij die deze Vraag wijzigen, te vragen gelieve me voor meer details of needed.

SELECT NLFinancialReportLayoutID, NLFinancialReportLineTypeID, Titel, ReportRow, SubtotalGroup,
(UITGEZOCHT min (ReportRow) ALS Expr1
VAN dbo.NLFinancialReportRow ALS S2
WHERE (SubtotalGroup = 1) EN
(ReportRow >= dbo.NLFinancialReportRow.ReportRow)) ALS G1
bl " >

Antwoord : SQL vraag op een financiële verslagleggingslijst

Goed denk, u soort subconsiously het wist misschien, wijze andere waarom u verschillende layoutID omvatte? Het was vrij veel het enige verschil tussen uw gegevens en mijn:)

Zo, goed uitgevoerd zelf:) En eveneens, genoot van de uitdaging, van de vraag, en het werken met u.

Hier is de voltooide vraag:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
SELECTEER    rr.NLFinancialReportLayoutID, rr.NLFinancialReportLineTypeID, rr. Titel, rr.ReportRow, rr.SubtotalGroup,
          geval wanneer rr.reportrow tussen g1.min_row en g1.reportrow dan g1.reportrow als g1 beëindigen,
          geval wanneer rr.reportrow tussen g2.min_row en g2.reportrow dan g2.reportrow als g2 beëindigen,
          geval wanneer rr.reportrow tussen g3.min_row en g3.reportrow dan g3.reportrow als g3 beëindigen,
          geval wanneer rr.reportrow tussen g4.min_row en g4.reportrow dan g4.reportrow als g4 beëindigen,
          geval wanneer rr.reportrow tussen g5.min_row en g5.reportrow dan g5.reportrow als g5 beëindigen,
          geval wanneer rr.reportrow tussen g6.min_row en g6.reportrow dan g6.reportrow als g6 beëindigen,
          geval wanneer rr.reportrow tussen g7.min_row en g7.reportrow dan g7.reportrow als G7 beëindigen,
          geval wanneer rr.reportrow tussen g8.min_row en g8.reportrow dan g8.reportrow als g8 beëindigen,
          geval wanneer rr.reportrow tussen g9.min_row en g9.reportrow dan g9.reportrow als g9 beëindigen
VAN      NLFinancialReportRow  rr
linker buiten treedt toe (UITGEZOCHTE  NLFinancialReportLayoutID, ReportRow, isnull ((uitgezochte hoogste 1 reportrow VAN NLFinancialReportRow s2 WAAR S2.NLFinancialReportLayoutID = s1.NLFinancialReportLayoutID en isnull (s2.SubtotalGroup, 0) >= 1 en s2.reportrow < s1="">= 2 en s2.reportrow < s1="">= 3 en s2.reportrow < s1="">= 4 en s2.reportrow < s1="">= 5 en s2.reportrow < s1="">= 6 en s2.reportrow < s1="">= 7 en s2.reportrow < s1="">= 8 en s2.reportrow < s1="">= 9 en s2.reportrow < s1=""> 0
GA
Andere oplossingen  
 
programming4us programming4us