Pergunta : Ajuda complexa da pergunta do SQL 2005 necessário

Principalmente, o SQL é segurado dinâmicamente pelo usuário - conseqüentemente, a codificação no ONDE a cláusula olhará impar a você. Ignorar por favor isto, como seu não a edição. necessidades do cliente do

What minhas são um relatório do livro- geral que tenha um crédito de deslocamento a um débito OU ao débito a um crédito. as cargas do

The serão o “crédito” e são identificadas em meu SQL abaixo com uma “inserção carregam” antes da inserção no #Summary.  Os pagamentos e os ajustes serão o “débito” e podem ser encontrados em meu SQL abaixo de seguir o mesmo conceito. o

What que eu preciso a ajuda com está fazendo uma inserção com o exato os mesmos valores (menos dois campos, que eu posso editar mais tarde) que deslocará a “carga” ou o “débito”. o

por exemplo, uma carga foi incorporado no sistema hoje e em minha série de dados olharia como este:

TicketNumber: 000584
Visit: 2010-07-28 12:50: 00.000
EntityCode: ano de 01
Fiscal: período de 10
Fiscal: 01
Subsystem: GL
SourceCode: JRNENT
DeptSubAccount: 1973      0302      
Amount: 104.00
Debit/Credit: C
Description: Identificação do
Proj da entrada de Centricity:      
Filler:                 o

What que eu preciso é copiar este exato o mesmo resultado e em meu campo do débito/crédito eu mudá-lo-ia de um “C” a um “D” e eu igualmente precisaria de mudar o campo de DeptSubAccount a um valor hardcoded que eu pudesse adicionar nessa lógica depois que eu começ esta parte endereçada. o

Essentially, lá é 3 componentes ao relatório: uma carga ou um pagamento ou um ajuste. Se eu tenho um destes, eu preciso de copiá-lo e produzir uma outra fileira em minha série de dados e de lanç de um “D” a um “C” ou de um “C” a um “D”. Eu espero que este faz o sentido, se não me pergunta onde seus confuso e eu faremos meu melhor re-para o explicar.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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:
>SET notpretty NOCOUNT " do class= " do id= " codeSnippet854013 do
= ISNULL de b.entry (“07/01/2010”, “1/1/1900”) E <> 0 de b.Status
	E b.entry < DATEADD (DIA, 1, ISNULL (“07/31/2010”, “1/1/3000”)
	)	
	E  --Filtro na facilidade
	(
	(o ZERO NÃO É NULO E pv.FacilityID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)
	E  --Filtro na companhia
	(
	(o ZERO NÃO É NULO E pv.CompanyID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)
	E  --Filtro na classe financeira
	(
	(o ZERO NÃO É NULO E pv.FinancialClassMID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)

GRUPO PERTO
	pv.TicketNumber,
	picovolt. Visita,
	doc. Livro-,
	fac. Livro-,
	aleta. Livro-

TENDO
	SOMAR o <> (pvp.TotalFee) 0
     
-- Introduzir pagamentos 

INTRODUZIR EM #Summary

SELECIONAR
	pv.TicketNumber,
	picovolt. Visita,
	“01” COMO EntityCode,
	ENDIREITAR (ANO (DATEADD (m, - (@otherlong - 1), b.Entry)) , 2) COMO [exercício orçamantal],
	ESQUERDA (CONVERSO (VARCHAR, DATEADD (m, - (@otherlong - 1), b.Entry), 101), 2) COMO [período fiscal],
	“GL” COMO [subsistema],
	“JRNENT” COMO [código fonte],	
	ESQUERDA (ISNULL (pymt. Livro-, '') + ESPAÇO (20), 20) COMO [DeptSubAccount], 
	ESQUERDA (CONVERSO (varchar, t.amount) + ESPAÇO (22), 22) COMO [uma quantidade],
	“D” COMO [débito/crédito],
	De “entrada Centricity” + ESPAÇO (34) COMO [descrição],
	ESPAÇO (6) COMO [identificação de Proj],
	ESPAÇO (16) COMO [enchimento]

DE
	PatientVisit picovolt 
	INTERNO JUNTAR-SE aos comp(s) de DoctorFacility EM pv.CompanyId = comp.DoctorFacilityId 
	INTERNO JUNTAR-SE ao fac de DoctorFacility EM pv.FacilityId = fac.DoctorFacilityId 
	INTERNO JUNTAR-SE a DoctorFacility doc EM pv.DoctorId = doc.DoctorFacilityId 
	EXTERIORES ESQUERDOS JUNTAM-SE à aleta de Medlists EM pv.FinancialClassMId = fin.MedListsId 
	INTERNO JUNTAR-SE a PatientProfile pp EM pv.PatientProfileId = pp.PatientProfileId
	INTERNO JUNTAR-SE ao vt de VisitTransactions EM pv.PatientVisitId = vt.PatientVisitid 
	INTERNO JUNTAR-SE a PaymentMethod pm EM vt.PaymentMethodId = pm.PaymentMethodId 
	INTERNO JUNTAR-SE ao grupo b EM pm.BatchID = b.BatchID 
	INTERNO JUNTAR-SE às transações t EM vt.VisitTransactionsId = t.VisitTransactionsId 
	EXTERIORES ESQUERDOS JUNTAM-SE a MedLists em EM t.ActionTypeMId = at.MedListsId 
	EXTERIORES ESQUERDOS JUNTAM-SE (selecionar * dos medlists onde tablename = “PaymentTypes ") ao pymt EM t.ActionTypeMId = pymt.MedlistsId 
ONDE 
	t.Action = <> 0 de “P” E de b.Status
	E NÃO EXISTE (SELECIONAR 1 de PaymentMethod pm1 ONDE vt.PaymentMethodId = pm1.PaymentMethodId E pm1.InsuranceTransfer = 1)
	E >= ISNULL de b.entry (“07/01/2010”, “1/1/1900”) 
	E b.entry < DATEADD (DIA, 1, ISNULL (“07/31/2010”, “1/1/3000”)
	)	
	E  --Filtro na facilidade
	(
	(o ZERO NÃO É NULO E pv.FacilityID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)
	E  --Filtro na companhia
	(
	(o ZERO NÃO É NULO E pv.CompanyID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)
	E  --Filtro na classe financeira
	(
	(o ZERO NÃO É NULO E pv.FinancialClassMID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)

GRUPO PERTO
	pv.TicketNumber,
	b.Entry,
	t.Amount,
	picovolt. Visita,
	doc. Livro-,
	fac. Livro-,
	aleta. Livro-,
	pymt. Livro-
	
TENDO
	<> 0 de t.amount

-- Introduzir ajustes

INTRODUZIR EM #Summary

SELECIONAR
	pv.TicketNumber,
	picovolt. Visita,
	“01” COMO EntityCode,
	ENDIREITAR (ANO (DATEADD (m, - (@otherlong - 1), b.Entry)) , 2) COMO [exercício orçamantal],
	ESQUERDA (CONVERSO (VARCHAR, DATEADD (m, - (@otherlong - 1), b.Entry), 101), 2) COMO [período fiscal],
	“GL” COMO [subsistema],
	“JRNENT” COMO [código fonte],
	ESQUERDA (ISNULL (ajuste. Livro-, '') + ESPAÇO (20), 20) COMO [DeptSubAccount],
	ESQUERDA (CONVERSO (varchar, t.amount) + ESPAÇO (22), 22) COMO [uma quantidade],
	“D” COMO [débito/crédito],
	De “entrada Centricity” + ESPAÇO (34) COMO [descrição],
	ESPAÇO (6) COMO [identificação de Proj],
	ESPAÇO (16) COMO [enchimento]

DE
	PatientVisit picovolt 
	INTERNO JUNTAR-SE aos comp(s) de DoctorFacility EM pv.CompanyId = comp.DoctorFacilityId 
	INTERNO JUNTAR-SE ao fac de DoctorFacility EM pv.FacilityId = fac.DoctorFacilityId 
	INTERNO JUNTAR-SE a DoctorFacility doc EM pv.DoctorId = doc.DoctorFacilityId 
	EXTERIORES ESQUERDOS JUNTAM-SE à aleta de Medlists EM pv.FinancialClassMId = fin.MedListsId 
	INTERNO JUNTAR-SE a PatientProfile pp EM pv.PatientProfileId = pp.PatientProfileId
	INTERNO JUNTAR-SE ao vt de VisitTransactions EM pv.PatientVisitId = vt.PatientVisitid 
	INTERNO JUNTAR-SE a PaymentMethod pm EM vt.PaymentMethodId = pm.PaymentMethodId 
	INTERNO JUNTAR-SE ao grupo b EM pm.BatchID = b.BatchID 
	INTERNO JUNTAR-SE às transações t EM vt.VisitTransactionsId = t.VisitTransactionsId 
	EXTERIORES ESQUERDOS JUNTAM-SE a MedLists em EM t.ActionTypeMId = at.MedListsId 
	EXTERIORES ESQUERDOS JUNTAM-SE (selecionar * dos medlists onde tablename = “AdjustmentTypes ") ao ajuste EM t.ActionTypeMId = adj.MedlistsId 

ONDE 
	t.Action = <> 0 de “A” E de b.Status
	E NÃO EXISTE (SELECIONAR 1 de PaymentMethod pm1 ONDE vt.PaymentMethodId = pm1.PaymentMethodId E pm1.InsuranceTransfer = 1)
	E >= ISNULL de b.entry (“07/01/2010”, “1/1/1900”) 
	E b.entry < DATEADD (DIA, 1, ISNULL (“07/31/2010”, “1/1/3000”)
	)	
	E  --Filtro na facilidade
	(
	(o ZERO NÃO É NULO E pv.FacilityID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)
	E  --Filtro na companhia
	(
	(o ZERO NÃO É NULO E pv.CompanyID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)
	E  --Filtro na classe financeira
	(
	(o ZERO NÃO É NULO E pv.FinancialClassMID DENTRO (o ZERO)) OU
	(O ZERO É NULO)
	)

GRUPO PERTO
	pv.TicketNumber,
	b.Entry,
	t.Amount,
	picovolt. Visita,
	doc. Livro-,
	fac. Livro-,
	aleta. Livro-,
	ajuste. Livro-
	
TENDO
	<> 0 de t.amount
		
-- Agrupar agora os artigos junto para um total

SELECIONAR 
	[TicketNumber],
	[Visita],
	[EntityCode],
  	[Exercício orçamantal],
  	[Período fiscal],
  	[Subsistema],
  	[Código fonte],
	[DeptSubAccount],
  	[Uma quantidade],
  	[Débito/crédito],
  	[Descrição],
  	[Identificação de Proj],
	[Enchimento] 
      
DE 
	#Summary 
	
ORDEM PERTO 	
	[TicketNumber] 	

TABELA DA GOTA #Summary
class= do

Resposta : Ajuda complexa da pergunta do SQL 2005 necessário

Pesaroso.

O estreio, e o re-run, o SELETO e ajustam-no para combinar o que você precisa -- remover as colunas, mudar alguns valores, etc.

Então você pode usar-se que SELETO para introduzir as transações reversas na tabela #summary.

INSERÇÃO EM #SUMMARY
SELETO
      [TicketNumber],
      [Visita],
      [EntityCode],
        [Exercício orçamantal],
        [Período fiscal],
        [Subsistema],
        [Código fonte],
        [DeptSubAccount], -- necessidades mudadas?!
        [Uma quantidade],
    CASO QUANDO [débito/crédito] = EXTREMIDADE OUTRA de “C” de “D” de “C” ENTÃO,
        [Descrição],
        [Identificação de Proj]
De #Summary
Outras soluções  
 
programming4us programming4us