Frage : Komplizierte Fragen-Hilfe SQL-2005 brauchte

In erster Linie wird der SQL dynamisch durch den Bediener - folglich, die Kodierung in behandelt, WO Klausel zu Ihnen ungerade schaut. Dieses bitte ignorieren, als sein nicht die Ausgabe.

What ist meine Klientennotwendigkeiten ein Generaldirektor-Report, der eine Versatz Gutschrift zu einem Schuldposten ODER zum Schuldposten zu einer Gutschrift hat.

The Gebühren sind die „Gutschrift“ und werden in meinem SQL unten mit einem „Einsatz auflädt“ vor dem Einsatz auf dem #Summary gekennzeichnet.  Die Zahlungen und die Justagen sind der „Schuldposten“ und können in meinem SQL unterhalb des Folgens des gleichen Konzeptes gefunden werden.

What, das ich Hilfe bei benötige, tut einen Einsatz mit dem genauen die gleichen Werte (minus zwei Felder, die ich danach redigieren kann), der die „Gebühr“ oder „Schuldposten“ versetzt.

zum Beispiel, eine Gebühr wurde in das System heute eingeführt und in meinem Datensatz würde es wie dieses aussehen:

TicketNumber: 000584
Visit: 2010-07-28 12:50: 00.000
EntityCode: 01
Fiscal Jahr: 10
Fiscal Zeitraum: 01
Subsystem: GL
SourceCode: JRNENT
DeptSubAccount: 1973      0302      
Amount: 104.00
Debit/Credit: C
Description: Centricity Eintragung
Proj Identifikation:      
Filler:                

What, das ich benötige, ist, dieses genaue zu kopieren das gleiche Resultat und in meinem Schuldposten-/Gutschriftfeld würde ich es von einem „C“ zu einem „D“ ändern und ich würde auch das DeptSubAccount Feld zu einem fest verdrahteten Wert ändern müssen, den ich in dieser Logik hinzufügen kann, nachdem ich dieses Teil adressiert erhalte.

Essentially, dort sind 3 Bestandteile zum Report: eine Gebühr oder eine Zahlung oder eine Justage. Wenn ich eins von diesen habe, muss ich es kopieren und eine andere Reihe in meinem Datensatz produzieren und von einem „D“ zu einem „C“ oder von einem „C“ zu einem „D“ leicht schlagen entweder. Ich hoffe, dass dieses sinnvoll, wenn mich, ist nicht zu fragen, wo Ihr konfuses und ich mein Bestes tun, um es Re-zu erklären.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
SET NOCOUNT AN

/Stellen ********* den Anfang des Finanzjahr ***************************/fest

ERKLÄREN 
	@otherlong INT
AUSERWÄHLT
	@otherlong = ISNULL (otherlong, 1)
VON
	Medlists
WO
	tablename = „fiscalyear“

/***********************************************************************************/

DIE #Summary TABELLE HERSTELLEN
	(
	[TicketNumber] VARCHAR (20),
	[Besuch] DATUM/UHRZEIT, 
	[EntityCode] VARCHAR (2),
  	[Finanzjahr] VARCHAR (2),
  	[Steuerlicher Zeitraum] VARCHAR (2),
  	[Subsystem] VARCHAR (2),
  	[Quellencode] VARCHAR (6),
  	[DeptSubAccount] VARCHAR (20),
  	[Menge] VARCHAR (22),
  	[Schuldposten/Gutschrift] VARCHAR (1),
  	[Beschreibung] VARCHAR (50),
  	[Proj Identifikation] VARCHAR (6),
	[Füller] VARCHAR (16)
	)

-- Gebühren einsetzen 

IN #Summary EINSETZEN

VORWÄHLEN
	pv.TicketNumber,
	pv. Besuch,
	„01“ ALS EntityCode,
	RECHT (JAHR (DATEADD (m, - (@otherlong - 1), Besuch)) , 2) WIE [Finanzjahr],
	LINKS (BEKEHRTER (VARCHAR, DATEADD (m, - (@otherlong - 1), Besuch), 101), 2) WIE [steuerlicher Zeitraum],
	„GL“ WIE [Subsystem],
	„JRNENT“ WIE [Quellencode],
	LINKS (ISNULL (Doc. Hauptbuch, '') + RAUM (10), 10) + VERLASSEN (VERLASSEN (ISNULL (fac. Hauptbuch, ''), 2) + VERLIESS (ISNULL (Flosse. Hauptbuch, ''), 2) + RAUM (10), 10) WIE [DeptSubAccount],
	LINKS (BEKEHRTER (varchar, SUMME (pvp.totalfee)) + RAUM (22), 22) WIE [Menge],	
	„C“ WIE [Schuldposten/Gutschrift],
	„Centricity Eintragung“ + RAUM (34) WIE [Beschreibung],
	RAUM (6) WIE [Proj Identifikation],
	RAUM (16) WIE [Füller]

VON
	PatientVisit pv 
	INNER DoctorFacility Baut. AUF VERBINDEN pv.CompanyId = comp.DoctorFacilityId 
	INNER DoctorFacility fac AUF sich ANSCHLIESSEN pv.FacilityId = fac.DoctorFacilityId 
	INNER DoctorFacility Doc. AUF VERBINDEN pv.DoctorId = doc.DoctorFacilityId 
	LINKE ÄUSSERE VERBINDEN Medlists Flosse AUF pv.FinancialClassMId = fin.MedListsId 
	INNER PatientProfile pp. AUF VERBINDEN pv.PatientProfileId = pp.PatientProfileId 
	INNER PatientVisitProcs pvp AUF sich ANSCHLIESSEN pv.PatientVisitId = pvp.PatientVisitId 
	INNER Reihe b AUF sich ANSCHLIESSEN pvp.BatchID = b.BatchID 
	INNER PatientVisitProcsAgg pvpa AUF VERBINDEN pvp.PatientVisitProcsID = pvpa.PatientVisitProcsID 
	LINKE ÄUSSERE SCHLIESSEN sich Verfahren p AUF pvp.ProceduresID = p.ProceduresID an 
	LINKS VERBINDEN MedLists Procs AUF p.DepartmentMId = procs.MedListsId

WO 
	b.entry >= ISNULL („07/01/2010“, „1/1/1900“) UND b.Status <> 0
	UND b.entry < DATEADD (TAG, 1, ISNULL („07/31/2010“, „1/1/3000“)
	)	
	UND  --Filter auf Anlage
	(
	(NULL IST NICHT UNGÜLTIG UND pv.FacilityID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)
	UND  --Filter auf Firma
	(
	(NULL IST NICHT UNGÜLTIG UND pv.CompanyID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)
	UND  --Filter auf Finanzkategorie
	(
	(NULL IST NICHT UNGÜLTIG UND pv.FinancialClassMID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)

GRUPPE VORBEI
	pv.TicketNumber,
	pv. Besuch,
	Doc. Hauptbuch,
	fac. Hauptbuch,
	Flosse. Hauptbuch

HABEN
	(pvp.TotalFee) SUMMIEREN <> 0
     
-- Zahlungen einsetzen 

IN #Summary EINSETZEN

VORWÄHLEN
	pv.TicketNumber,
	pv. Besuch,
	„01“ ALS EntityCode,
	RECHT (JAHR (DATEADD (m, - (@otherlong - 1), b.Entry)) , 2) WIE [Finanzjahr],
	LINKS (BEKEHRTER (VARCHAR, DATEADD (m, - (@otherlong - 1), b.Entry), 101), 2) WIE [steuerlicher Zeitraum],
	„GL“ WIE [Subsystem],
	„JRNENT“ WIE [Quellencode],	
	LINKS (ISNULL (pymt. Hauptbuch, '') + RAUM (20), 20) WIE [DeptSubAccount], 
	LINKS (BEKEHRTER (varchar, t.amount) + RAUM (22), 22) WIE [Menge],
	„D“ WIE [Schuldposten/Gutschrift],
	„Centricity Eintragung“ + RAUM (34) WIE [Beschreibung],
	RAUM (6) WIE [Proj Identifikation],
	RAUM (16) WIE [Füller]

VON
	PatientVisit pv 
	INNER DoctorFacility Baut. AUF VERBINDEN pv.CompanyId = comp.DoctorFacilityId 
	INNER DoctorFacility fac AUF sich ANSCHLIESSEN pv.FacilityId = fac.DoctorFacilityId 
	INNER DoctorFacility Doc. AUF VERBINDEN pv.DoctorId = doc.DoctorFacilityId 
	LINKE ÄUSSERE VERBINDEN Medlists Flosse AUF pv.FinancialClassMId = fin.MedListsId 
	INNER PatientProfile pp. AUF VERBINDEN pv.PatientProfileId = pp.PatientProfileId
	INNER VisitTransactions vt AUF sich ANSCHLIESSEN pv.PatientVisitId = vt.PatientVisitid 
	INNER PaymentMethod P.M. AUF VERBINDEN vt.PaymentMethodId = pm.PaymentMethodId 
	INNER Reihe b AUF sich ANSCHLIESSEN pm.BatchID = b.BatchID 
	INNER Verhandlungen t AUF sich ANSCHLIESSEN vt.VisitTransactionsId = t.VisitTransactionsId 
	LINKE ÄUSSERE VERBINDEN MedLists an AUF t.ActionTypeMId = at.MedListsId 
	LINKE ÄUSSERE SCHLIESSEN sich (* von den medlists vorwählen in denen tablename = „PaymentTypes "), pymt AUF t.ActionTypeMId = pymt.MedlistsId an 
WO 
	t.Action = „P“ UND b.Status <> 0
	UND NICHT EXISTIERT (1 VON PaymentMethod pm1 VORWÄHLEN IN DEM vt.PaymentMethodId = pm1.PaymentMethodId UND pm1.InsuranceTransfer = 1)
	UND b.entry >= ISNULL („07/01/2010“, „1/1/1900“) 
	UND b.entry < DATEADD (TAG, 1, ISNULL („07/31/2010“, „1/1/3000“)
	)	
	UND  --Filter auf Anlage
	(
	(NULL IST NICHT UNGÜLTIG UND pv.FacilityID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)
	UND  --Filter auf Firma
	(
	(NULL IST NICHT UNGÜLTIG UND pv.CompanyID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)
	UND  --Filter auf Finanzkategorie
	(
	(NULL IST NICHT UNGÜLTIG UND pv.FinancialClassMID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)

GRUPPE VORBEI
	pv.TicketNumber,
	b.Entry,
	t.Amount,
	pv. Besuch,
	Doc. Hauptbuch,
	fac. Hauptbuch,
	Flosse. Hauptbuch,
	pymt. Hauptbuch
	
HABEN
	t.amount <> 0

-- Justagen einsetzen

IN #Summary EINSETZEN

VORWÄHLEN
	pv.TicketNumber,
	pv. Besuch,
	„01“ ALS EntityCode,
	RECHT (JAHR (DATEADD (m, - (@otherlong - 1), b.Entry)) , 2) WIE [Finanzjahr],
	LINKS (BEKEHRTER (VARCHAR, DATEADD (m, - (@otherlong - 1), b.Entry), 101), 2) WIE [steuerlicher Zeitraum],
	„GL“ WIE [Subsystem],
	„JRNENT“ WIE [Quellencode],
	LINKS (ISNULL (Justage. Hauptbuch, '') + RAUM (20), 20) WIE [DeptSubAccount],
	LINKS (BEKEHRTER (varchar, t.amount) + RAUM (22), 22) WIE [Menge],
	„D“ WIE [Schuldposten/Gutschrift],
	„Centricity Eintragung“ + RAUM (34) WIE [Beschreibung],
	RAUM (6) WIE [Proj Identifikation],
	RAUM (16) WIE [Füller]

VON
	PatientVisit pv 
	INNER DoctorFacility Baut. AUF VERBINDEN pv.CompanyId = comp.DoctorFacilityId 
	INNER DoctorFacility fac AUF sich ANSCHLIESSEN pv.FacilityId = fac.DoctorFacilityId 
	INNER DoctorFacility Doc. AUF VERBINDEN pv.DoctorId = doc.DoctorFacilityId 
	LINKE ÄUSSERE VERBINDEN Medlists Flosse AUF pv.FinancialClassMId = fin.MedListsId 
	INNER PatientProfile pp. AUF VERBINDEN pv.PatientProfileId = pp.PatientProfileId
	INNER VisitTransactions vt AUF sich ANSCHLIESSEN pv.PatientVisitId = vt.PatientVisitid 
	INNER PaymentMethod P.M. AUF VERBINDEN vt.PaymentMethodId = pm.PaymentMethodId 
	INNER Reihe b AUF sich ANSCHLIESSEN pm.BatchID = b.BatchID 
	INNER Verhandlungen t AUF sich ANSCHLIESSEN vt.VisitTransactionsId = t.VisitTransactionsId 
	LINKE ÄUSSERE VERBINDEN MedLists an AUF t.ActionTypeMId = at.MedListsId 
	LINKE ÄUSSERE SCHLIESSEN sich (* von den medlists vorwählen in denen tablename = „AdjustmentTypes "), Justage AUF t.ActionTypeMId = adj.MedlistsId an 

WO 
	t.Action = „A“ UND b.Status <> 0
	UND NICHT EXISTIERT (1 VON PaymentMethod pm1 VORWÄHLEN IN DEM vt.PaymentMethodId = pm1.PaymentMethodId UND pm1.InsuranceTransfer = 1)
	UND b.entry >= ISNULL („07/01/2010“, „1/1/1900“) 
	UND b.entry < DATEADD (TAG, 1, ISNULL („07/31/2010“, „1/1/3000“)
	)	
	UND  --Filter auf Anlage
	(
	(NULL IST NICHT UNGÜLTIG UND pv.FacilityID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)
	UND  --Filter auf Firma
	(
	(NULL IST NICHT UNGÜLTIG UND pv.CompanyID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)
	UND  --Filter auf Finanzkategorie
	(
	(NULL IST NICHT UNGÜLTIG UND pv.FinancialClassMID INNEN (NULL)) ODER
	(NULL IST UNGÜLTIG)
	)

GRUPPE VORBEI
	pv.TicketNumber,
	b.Entry,
	t.Amount,
	pv. Besuch,
	Doc. Hauptbuch,
	fac. Hauptbuch,
	Flosse. Hauptbuch,
	Justage. Hauptbuch
	
HABEN
	t.amount <> 0
		
-- Die Einzelteile für eine Gesamtmenge jetzt zusammen gruppieren

VORWÄHLEN 
	[TicketNumber],
	[Besuch],
	[EntityCode],
  	[Finanzjahr],
  	[Steuerlicher Zeitraum],
  	[Subsystem],
  	[Quellencode],
	[DeptSubAccount],
  	[Menge],
  	[Schuldposten/Gutschrift],
  	[Beschreibung],
  	[Proj Identifikation],
	[Füller] 
      
VON 
	#Summary 
	
AUFTRAG VORBEI 	
	[TicketNumber] 	

TROPFEN-TABELLE #Summary

Antwort : Komplizierte Fragen-Hilfe SQL-2005 brauchte

Traurig.

Erster Lauf und Wiederholung, das AUSERWÄHLTE und justieren ihn, um zusammenzubringen, was Sie benötigen -- Spalten entfernen, irgendwelche Werte, etc. ändern.

Dann können Sie verwenden, dass AUSERWÄHLT, die Rückverhandlungen in die #summary Tabelle einzusetzen.

EINSATZ IN #SUMMARY
AUSERWÄHLT
      [TicketNumber],
      [Besuch],
      [EntityCode],
        [Finanzjahr],
        [Steuerlicher Zeitraum],
        [Subsystem],
        [Quellencode],
        [DeptSubAccount], -- Notwendigkeiten geändert?!
        [Menge],
    FALL, WENN [Schuldposten/Gutschrift] = „c-“ DANN „d-“ SONST „c-“ ENDE,
        [Beschreibung],
        [Proj Identifikation]
VON #Summary
Weitere Lösungen  
 
programming4us programming4us