Fråga : Hjälp för Query för komplexSQL 2005 behövde

Först och främst, SQLEN behandlas dynamiskt av serveren - därför, kodifiera i VAR satsen ska looken som var udda till dig. Behaga ignorerar detta, som dess inte utfärda. min beställarebehov för

What är en rapport för allmän Ledger som har förskjuta kreditera till en debitering ELLER debiteringen till en kreditera. ska laddningar för

The är ”krediterar” och identifieras i min SQL som är nedanför med ”ett mellanlägg, laddar” för mellanlägget på det #Summary.  Betalningarna och justeringarna ska är ”debiteringen” och kan finnas i min nedanföra SQL efter samma begrepp.

What som jag behöver hjälp med, gör ett mellanlägg med avkräva samma värderar (minus två sätter in, som jag kan redigera därefter), som ska förskjutning ”laddningen” eller ”debiteringen”.

For example, en laddning skrevs in in i systemet i dag, och i min dataset den skulle looknågot liknande detta:

TicketNumber: 000584
Visit: 2010-07-28 12:50: 00.000
EntityCode: år för 01
Fiscal: period för 10
Fiscal: 01
Subsystem: GL
SourceCode: JRNENT
DeptSubAccount: 1973      0302      
Amount: 104.00
Debit/Credit: C
Description: ID för Centricity tillträdes
Proj:      
Filler:                

What som jag behöver, är att kopiera detta avkräver samma resultat, och i min debitering/kreditera sätter in mig skulle ändring det från ”ett C” till ”ett D”, och jag skulle också behov att ändra DeptSubAccounten sätter in till ett hardcoded värderar som jag kan tillfoga däri logik, efter jag har fått denna del tilltalad.

Essentially, där är 3 delar till rapporten: en laddning eller en betalning eller en justering. Om jag har en av dessa, jag behöver att kopiera den, och jordbruksprodukter another ror i min dataset och bläddrar från endera ”ett D” till ”ett C” eller från ”ett C” till ”ett D”. Jag hoppas denna gör avkänning, om att inte fråga mig, var din förvirrat och jag ska, gör mitt bäst för beträffande-att förklara det.
> för
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:
36:
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:
" codeBody " " >SET NOCOUNT för class= " för = ISNULL (”07/01/2010”, ”1/1/1900”) OCH b.Status-<> 0 OCH b.entry < DATEADD (DAG, 1, ISNULL (”07/31/2010”, ”1/1/3000”) ) OCH --Filtrera på lätthet ( (OGILTIG INTE ÄR OGILTIG OCH pv.FacilityID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) OCH --Filtrera på företaget ( (OGILTIG INTE ÄR OGILTIG OCH pv.CompanyID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) OCH --Filtrera på finansiellt klassificerar ( (OGILTIG INTE ÄR OGILTIG OCH pv.FinancialClassMID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) GRUPP BY pv.TicketNumber, pv. Besök, doc. Ledger, fac. Ledger, fena. Ledger HA SUM <> (pvp.TotalFee) 0 -- Sätt in betalningar SÄTT IN IN I #Summary VÄLJ pv.TicketNumber, pv. Besöka, ”01” SOM EntityCode, HÖGERT (ÅR (DATEADD (M, - (@otherlong - 1), b.Entry)) , 2) SOM [räkenskapsår], LÄMNAT (OMVÄND (VARCHAR, DATEADD (M, - (@otherlong - 1), b.Entry), 101), 2) SOM [den skatte- perioden], ”GL” SOM [undersystemet], ”JRNENT” SOM [källan kodifierar], LÄMNAT (ISNULL (pymt. Ledger '') + UTRYMME (20), 20) SOM [DeptSubAccount], LÄMNAT (varchar OMVÄND (, t.amount) + UTRYMME (22), 22) SOM [beloppet], ”D” SOM [debiteringen/krediterar], ”Centricity tillträde” + UTRYMME (34) SOM [beskrivningen], UTRYMME (6) SOM [Proj ID], UTRYMME (16) SOM [utfyllnadsgodset] FRÅN PatientVisit pv INRE SAMMANFOGA det DoctorFacility kompet PÅ pv.CompanyId = comp.DoctorFacilityId INRE SAMMANFOGA DoctorFacility fac PÅ pv.FacilityId = fac.DoctorFacilityId INRE SAMMANFOGA DoctorFacility doc PÅ pv.DoctorId = doc.DoctorFacilityId LÄMNAT YTTRE SAMMANFOGA den Medlists fenan PÅ pv.FinancialClassMId = fin.MedListsId INRE SAMMANFOGA PatientProfile pp PÅ pv.PatientProfileId = pp.PatientProfileId INRE SAMMANFOGA VisitTransactions vt PÅ pv.PatientVisitId = vt.PatientVisitid INRE SAMMANFOGA PaymentMethod pm PÅ vt.PaymentMethodId = pm.PaymentMethodId INRE SAMMANFOGA grupperar b PÅ pm.BatchID = b.BatchID INRE SAMMANFOGA transaktioner t PÅ vt.VisitTransactionsId = t.VisitTransactionsId LÄMNAT YTTRE SAMMANFOGA MedLists på PÅ t.ActionTypeMId = at.MedListsId LÄMNAT YTTRE SAMMANFOGA (välj * från medlists var tablename = ”PaymentTypes”), pymt PÅ t.ActionTypeMId = pymt.MedlistsId VAR t.Action = ”p-” OCH b.Status-<> 0 OCH INTE FINNS (VÄLJ 1 FRÅN PaymentMethod pm1 VAR vt.PaymentMethodId = pm1.PaymentMethodId OCH pm1.InsuranceTransfer = 1) OCH b.entry->= ISNULL (”07/01/2010”, ”1/1/1900”) OCH b.entry < DATEADD (DAG, 1, ISNULL (”07/31/2010”, ”1/1/3000”) ) OCH --Filtrera på lätthet ( (OGILTIG INTE ÄR OGILTIG OCH pv.FacilityID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) OCH --Filtrera på företaget ( (OGILTIG INTE ÄR OGILTIG OCH pv.CompanyID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) OCH --Filtrera på finansiellt klassificerar ( (OGILTIG INTE ÄR OGILTIG OCH pv.FinancialClassMID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) GRUPP BY pv.TicketNumber, b.Entry, t.Amount, pv. Besök, doc. Ledger, fac. Ledger, fena. Ledger, pymt. Ledger HA t.amount-<> 0 -- Sätt in justeringar SÄTT IN IN I #Summary VÄLJ pv.TicketNumber, pv. Besöka, ”01” SOM EntityCode, HÖGERT (ÅR (DATEADD (M, - (@otherlong - 1), b.Entry)) , 2) SOM [räkenskapsår], LÄMNAT (OMVÄND (VARCHAR, DATEADD (M, - (@otherlong - 1), b.Entry), 101), 2) SOM [den skatte- perioden], ”GL” SOM [undersystemet], ”JRNENT” SOM [källan kodifierar], LÄMNAT (ISNULL (justering. Ledger '') + UTRYMME (20), 20) SOM [DeptSubAccount], LÄMNAT (varchar OMVÄND (, t.amount) + UTRYMME (22), 22) SOM [beloppet], ”D” SOM [debiteringen/krediterar], ”Centricity tillträde” + UTRYMME (34) SOM [beskrivningen], UTRYMME (6) SOM [Proj ID], UTRYMME (16) SOM [utfyllnadsgodset] FRÅN PatientVisit pv INRE SAMMANFOGA det DoctorFacility kompet PÅ pv.CompanyId = comp.DoctorFacilityId INRE SAMMANFOGA DoctorFacility fac PÅ pv.FacilityId = fac.DoctorFacilityId INRE SAMMANFOGA DoctorFacility doc PÅ pv.DoctorId = doc.DoctorFacilityId LÄMNAT YTTRE SAMMANFOGA den Medlists fenan PÅ pv.FinancialClassMId = fin.MedListsId INRE SAMMANFOGA PatientProfile pp PÅ pv.PatientProfileId = pp.PatientProfileId INRE SAMMANFOGA VisitTransactions vt PÅ pv.PatientVisitId = vt.PatientVisitid INRE SAMMANFOGA PaymentMethod pm PÅ vt.PaymentMethodId = pm.PaymentMethodId INRE SAMMANFOGA grupperar b PÅ pm.BatchID = b.BatchID INRE SAMMANFOGA transaktioner t PÅ vt.VisitTransactionsId = t.VisitTransactionsId LÄMNAT YTTRE SAMMANFOGA MedLists på PÅ t.ActionTypeMId = at.MedListsId LÄMNAT YTTRE SAMMANFOGA (välj * från medlists var tablename = ”AdjustmentTypes”), justering PÅ t.ActionTypeMId = adj.MedlistsId VAR t.Action = ”a-” OCH b.Status-<> 0 OCH INTE FINNS (VÄLJ 1 FRÅN PaymentMethod pm1 VAR vt.PaymentMethodId = pm1.PaymentMethodId OCH pm1.InsuranceTransfer = 1) OCH b.entry->= ISNULL (”07/01/2010”, ”1/1/1900”) OCH b.entry < DATEADD (DAG, 1, ISNULL (”07/31/2010”, ”1/1/3000”) ) OCH --Filtrera på lätthet ( (OGILTIG INTE ÄR OGILTIG OCH pv.FacilityID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) OCH --Filtrera på företaget ( (OGILTIG INTE ÄR OGILTIG OCH pv.CompanyID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) OCH --Filtrera på finansiellt klassificerar ( (OGILTIG INTE ÄR OGILTIG OCH pv.FinancialClassMID IN (OGILTIGT)) ELLER (OGILTIGT ÄR OGILTIGT), ) GRUPP BY pv.TicketNumber, b.Entry, t.Amount, pv. Besök, doc. Ledger, fac. Ledger, fena. Ledger, justering. Ledger HA t.amount-<> 0 -- Gruppera nu objekten tillsammans för en slutsumma VÄLJ [TicketNumber], [Besök], [EntityCode], [Räkenskapsår], [Skatte- period], [Undersystem], [Källan kodifierar], [DeptSubAccount], [Belopp], [Debiteringen/krediterar], [Beskrivning], [Proj ID], [Utfyllnadsgods] FRÅN #Summary BESTÄLLA BY [TicketNumber] TAPPA BORDLÄGGER #Summary
" klar "

Svar : Hjälp för Query för komplexSQL 2005 behövde

Ledset.

Den första körningen och ren-run, det VALT och justerar den för att matcha vad du behöver -- ta bort kolonner, ändra något värderar, Etc.

Därefter du kan använda att VALT för att sätta in de omvända transaktionerna in i det #summary bordlägga.

SÄTT IN IN I #SUMMARY
VÄLJ
      [TicketNumber],
      [Besök],
      [EntityCode],
        [Räkenskapsår],
        [Skatte- period],
        [Undersystem],
        [Källan kodifierar],
        [DeptSubAccount], -- ändrande behov?!
        [Belopp],
    FALL, NÄR [debiteringen/krediterar], = ”C D” ANNAT ”C” AVSLUTAR” DÄREFTER ”,
        [Beskrivning],
        [Proj ID]
FRÅN #Summary
Andra lösningar  
 
programming4us programming4us