Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/07/2011, 17h14   #1
Invité régulier
 
Inscription : septembre 2002
Messages : 34
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : septembre 2002
Messages : 34
Points : 8
Points : 8
Envoyer un message via MSN à sir_ben Envoyer un message via Yahoo à sir_ben Envoyer un message via Skype™ à sir_ben
Par défaut [SQL2K] REQUETE UNION

Bonjour a Tous,

Mon problème est le suivant, j'ai créer une requête union dont voici le code :

Code :
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
CREATE       VIEW EXPORT.V_Param_Fact_Admission
AS
SELECT 'VTE' AS Code_journal,dbo.FUNC_FORMAT_DATE(Date_dossier_admission)AS Echeance,Num_facture_simple AS Num_piece, 
        '411100' AS Num_compte_general,'D' AS Sens,SUM(Montant_Pris_En_Charge) AS Montant_Debit,0 AS Montant_credit, 'Facture'+'/'+ Nom_prenom + '/' + Employeur  AS  Libelle_ecriture,
case when Num_facture_simple LIKE'%10CFH%' then  Libelle_Param_Tiers ELSE '411DIVERS'END AS Num_compte_Tiers,'G' AS Type_ecriture
FROM         EXPORT.V_Param_Hospitalisation 
WHERE     Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'AND type_facture<>'PROFORMA'--and Num_facture_simple like'%10FA%'
GROUP BY Date_dossier_admission,Num_facture_simple,Nom_prenom,Employeur,type_facture,Libelle_Param_Tiers
 
union ALL
 
SELECT 'VTE' AS Code_journal,dbo.FUNC_FORMAT_DATE(Date_dossier_admission)AS Echeance,Num_facture_simple AS Num_piece, 
        '411100' AS Num_compte_general,'D' AS Sens,SUM(Montant_Patient)  AS Montant_Debit,0 AS Montant_credit,
  'Facture'+'/'+ Nom_prenom + '/' + Employeur  AS  Libelle_ecriture,'411'+ Nom_patient AS Num_compte_Tiers,'G' AS Type_ecriture
FROM         EXPORT.V_Param_Hospitalisation2 
WHERE     Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'AND type_facture<>'PROFORMA' ---and Num_facture_simple like'%10CFH%'--and Num_facture_simple like'%10FA%'
GROUP BY Date_dossier_admission,Num_facture_simple,Nom_patient,Employeur,type_facture,Libelle_Param_Tiers,Nom_prenom
 
union ALL
 
SELECT    'VTE'AS Code_journal,dbo.FUNC_FORMAT_DATE(Date_dossier_admission) AS Echeance, Num_facture_simple AS Num_piece,
case when Libelle_famille_acte='CONSULTATION' then '706100'	
     when Libelle_famille_acte='CHAMBRE' then '706104'
     when Libelle_famille_acte='LABORATOIRE' then '706103'
     when Libelle_famille_acte='HONORAIRES MEDECINS' then '706100'
     when Libelle_famille_acte='ECHOGRAPHIE' then '706103'
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER CARDIAQUE' then '706103'
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER CAROTIDIEN' then '706103'
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER VASCULAIRE' then '706103'
     when Libelle_famille_acte='RADIOLOGIE' then '706102'
     when Libelle_famille_acte='CHIRURGIE' then '706101'
     when Libelle_famille_acte='MEDICAMENTS' then '706100'
     when Libelle_famille_acte='ACCOUCHEMENTS' then '706103'
     when Libelle_famille_acte='SOIN' then '706103'
     when Libelle_famille_acte='AUTRES SERVICES' then '706103'
     when Libelle_famille_acte='BLOC OPERATOIRE' then '706103'
     when Libelle_famille_acte='CARDIOLOGIE' then '706100'
     when Libelle_famille_acte='GYNECOLOGIE' then '706100'
     when Libelle_famille_acte='MEDECINE INTERNE' then '706103'
     when Libelle_famille_acte='REANIMATION' then '706103'
     when Libelle_famille_acte='ORL ET CCF' then '706100'
     when Libelle_famille_acte='URGENCES' then '706103'
     when Libelle_famille_acte='VISCERALE' then '706103'
     when Libelle_famille_acte='IRM' then '706103'
     when Libelle_famille_acte='SCANNER' then '706102'
     when Libelle_famille_acte='OPHTALMOLOGIE' then '706100'
     when Libelle_famille_acte='ORTHOPEDIE' then '706100'
     when Libelle_famille_acte='SOINS INTENSIFS' then '706103'
     when Libelle_famille_acte='GRANDS BRULES' then '706103'
     when Libelle_famille_acte='ACTES MEDICAUX INFIRMIERS' then '706103'
     when Libelle_famille_acte='DENTISTERIE' then '706100'
     when Libelle_famille_acte='GASTROLOGIE' then '706100'
     when Libelle_famille_acte='CERTIFICATS' then '706103'
     when Libelle_famille_acte='AVANCE HOSPITALISATION' then '471201'
     when Libelle_famille_acte='PHARMACIE' then '701100'
     when Libelle_famille_acte='RETRAIT CAUTION' then '471201'
     when Libelle_famille_acte='VISITE' then '706100'
     when Libelle_famille_acte='AVANCE OU CAUTION HOSPITALISATION' then '471201'
     when Libelle_famille_acte='ENDOCRINOLOGIE' then '706100'
 
     when Libelle_famille_acte='NEUROLOGIE' then '706100'
     when Libelle_famille_acte='KINESITHERAPIE' then '706100'
     when Libelle_famille_acte='DERMATOLOGIE' then '706100'
     when Libelle_famille_acte='ANESTHESIE' then '706103'
     when Libelle_famille_acte='PRESTATIONS' then '706103'
     when Libelle_famille_acte='AMBULANCE' then '706103'
     when Libelle_famille_acte='CAUTIONS' then '471201'
     when Libelle_famille_acte='COUVEUSE SOINS INTENSIFS/JOUR' then '706103'
     when Libelle_famille_acte='PHOTOTHERAPIE' then '706103'
     when Libelle_famille_acte='AMNIOCENTESE' then '706103'
     when Libelle_famille_acte='DIVERS' then '706103'
     when Libelle_famille_acte='OXYGENE EN URGENCE' then '706103'
     when Libelle_famille_acte='FORFAIT JOURNALIER' then '706103'
--     when Code_salle ‹› '' then '443200'
     when Libelle_famille_acte='FRAIS D''HOSPITALISATION' then '706103'
     END AS Num_compte_general,
     'C' AS Sens, 0 AS Montant_Debit, 
case when Libelle_famille_acte='CONSULTATION' then SUM(Montant_total_Ht)
--     when Code_salle ‹› '' then SUM(Montant_Tva)
     when Libelle_famille_acte='CHAMBRE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='LABORATOIRE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='HONORAIRES MEDECINS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ECHOGRAPHIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER CARDIAQUE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER CAROTIDIEN' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER VASCULAIRE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='RADIOLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='CHIRURGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='MEDICAMENTS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ACCOUCHEMENTS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='SOIN' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='AUTRES SERVICES' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='BLOC OPERATOIRE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='CARDIOLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='GYNECOLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='MEDECINE INTERNE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='REANIMATION' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ORL ET CCF' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='URGENCES' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='VISCERALE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='IRM' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='SCANNER' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='OPHTALMOLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ORTHOPEDIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='SOINS INTENSIFS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='GRANDS BRULES' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ACTES MEDICAUX INFIRMIERS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='DENTISTERIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='GASTROLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='CERTIFICATS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='AVANCE HOSPITALISATION' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='PHARMACIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='RETRAIT CAUTION' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='VISITE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='AVANCE OU CAUTION HOSPITALISATION' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ENDOCRINOLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='NEUROLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='KINESITHERAPIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='DERMATOLOGIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='ANESTHESIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='PRESTATIONS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='AMBULANCE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='CAUTIONS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='COUVEUSE SOINS INTENSIFS/JOUR' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='PHOTOTHERAPIE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='AMNIOCENTESE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='DIVERS' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='OXYGENE EN URGENCE' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='FORFAIT JOURNALIER' then SUM(Montant_total_Ht)
     when Libelle_famille_acte='FRAIS D''HOSPITALISATION' then SUM(Montant_total_Ht)
     END AS Montant_credit,
case when Libelle_famille_acte='CONSULTATION' then 'CONSULTATION'
     when Libelle_famille_acte='CHAMBRE' then 'HOSPITALISATION'
--     when Code_salle ‹› '' then 'TVA FACTUREE/PRESTATION DE SERVICE'
     when Libelle_famille_acte='LABORATOIRE' then 'LABORATOIRE'
     when Libelle_famille_acte='HONORAIRES MEDECINS' then 'HONORAIRES MEDECINS'
     when Libelle_famille_acte='ECHOGRAPHIE' then 'ECHOGRAPHIE'
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER CARDIAQUE' then 'ECHOGRAPHIE DOPPLER CARDIAQUE'
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER CAROTIDIEN' then 'ECHOGRAPHIE DOPPLER CAROTIDIEN'
     when Libelle_famille_acte='ECHOGRAPHIE DOPPLER VASCULAIRE' then 'ECHOGRAPHIE DOPPLER VASCULAIRE'
     when Libelle_famille_acte='RADIOLOGIE' then 'RADIOLOGIE'
     when Libelle_famille_acte='CHIRURGIE' then 'CHIRURGIE'
     when Libelle_famille_acte='MEDICAMENTS' then 'MEDICAMENTS'
     when Libelle_famille_acte='ACCOUCHEMENTS' then 'ACCOUCHEMENTS'
     when Libelle_famille_acte='SOIN' then 'SOIN'
     when Libelle_famille_acte='AUTRES SERVICES' then 'AUTRES SERVICES'
     when Libelle_famille_acte='BLOC OPERATOIRE' then 'BLOC OPERATOIRE'
     when Libelle_famille_acte='CARDIOLOGIE' then 'CARDIOLOGIE'
     when Libelle_famille_acte='GYNECOLOGIE' then 'GYNECOLOGIE'
     when Libelle_famille_acte='MEDECINE INTERNE' then 'MEDECINE INTERNE'
     when Libelle_famille_acte='REANIMATION' then 'REANIMATION'
     when Libelle_famille_acte='ORL ET CCF' then 'ORL ET CCF'
     when Libelle_famille_acte='URGENCES' then 'URGENCES'
     when Libelle_famille_acte='VISCERALE' then 'VISCERALE'
     when Libelle_famille_acte='IRM' then 'IRM'
     when Libelle_famille_acte='SCANNER' then 'SCANNER'
     when Libelle_famille_acte='OPHTALMOLOGIE' then 'OPHTALMOLOGIE'
     when Libelle_famille_acte='ORTHOPEDIE' then 'ORTHOPEDIE'
     when Libelle_famille_acte='SOINS INTENSIFS' then 'SOINS INTENSIFS'
     when Libelle_famille_acte='GRANDS BRULES' then 'GRANDS BRULES'
     when Libelle_famille_acte='ACTES MEDICAUX INFIRMIERS' then 'ACTES MEDICAUX INFIRMIERS'
     when Libelle_famille_acte='DENTISTERIE' then 'DENTISTERIE'
     when Libelle_famille_acte='GASTROLOGIE' then 'GASTROLOGIE'
     when Libelle_famille_acte='CERTIFICATS' then 'CERTIFICATS'
     when Libelle_famille_acte='AVANCE HOSPITALISATION' then 'AVANCE HOSPITALISATION'
     when Libelle_famille_acte='PHARMACIE' then 'PHARMACIE'
     when Libelle_famille_acte='RETRAIT CAUTION' then 'RETRAIT CAUTION'
     when Libelle_famille_acte='VISITE' then 'VISITE'
     when Libelle_famille_acte='AVANCE OU CAUTION HOSPITALISATION' then 'AVANCE OU CAUTION HOSPITALISATION'
     when Libelle_famille_acte='ENDOCRINOLOGIE' then 'ENDOCRINOLOGIE'
     when Libelle_famille_acte='NEUROLOGIE' then 'NEUROLOGIE'
     when Libelle_famille_acte='KINESITHERAPIE' then 'KINESITHERAPIE'
     when Libelle_famille_acte='DERMATOLOGIE' then 'DERMATOLOGIE'
     when Libelle_famille_acte='ANESTHESIE' then 'ANESTHESIE'
     when Libelle_famille_acte='PRESTATIONS' then 'PRESTATIONS'
     when Libelle_famille_acte='AMBULANCE' then 'AMBULANCE'
     when Libelle_famille_acte='CAUTIONS' then 'CAUTIONS'
     when Libelle_famille_acte='COUVEUSE SOINS INTENSIFS/JOUR' then 'COUVEUSE SOINS INTENSIFS/JOUR'
     when Libelle_famille_acte='PHOTOTHERAPIE' then 'PHOTOTHERAPIE'
     when Libelle_famille_acte='AMNIOCENTESE' then 'AMNIOCENTESE'
     when Libelle_famille_acte='DIVERS' then 'DIVERS'
     when Libelle_famille_acte='OXYGENE EN URGENCE' then 'OXYGENE EN URGENCE'
     when Libelle_famille_acte='FORFAIT JOURNALIER' then 'FORFAIT JOURNALIER'
     when Libelle_famille_acte='FRAIS D''HOSPITALISATION' then 'FRAIS D''HOSPITALISATION'
     END AS Libelle_ecriture,
''AS Num_compte_Tiers, 'G' AS Type_ecriture
FROM         EXPORT.V_Param_Hospitalisation 
WHERE     Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'AND type_facture<>'PROFORMA'--and Num_facture_simple like'%10FA%'
GROUP BY Date_dossier_admission,Num_facture_simple,Libelle_FAMILLE_ACTE
union ALL
 
SELECT   'VTE'AS Code_journal,dbo.FUNC_FORMAT_DATE(Date_dossier_admission) AS Echeance, Num_facture_simple AS Num_piece,'443200' AS Num_compte_general,
                      'C' AS Sens,0 AS Montant_Debit, SUM(Montant_Tva) AS Montant_credit,'TVA FACTUREE/PRESTATION DE SERVICE' Libelle_ecriture, 
                 '' AS Num_compte_Tiers, 'G' AS Type_ecriture
FROM         EXPORT.V_Param_Hospitalisation2 
WHERE     Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'AND type_facture<>'PROFORMA'--and Num_facture_simple like'%10FA%'
GROUP BY Date_dossier_admission,Num_facture_simple
A l'exécution de cette requete j'ai ce message d'erreur:
Citation:
IMPOSSIBLE D'ALLOUER LA TABLE ANNEXE POUR LA RESOLUTION DE LA VUE OU DE LA FONCTION. LE NOMBRE MAXIMAL DE TABLES DANS UNE REQUETE (256) a été dépassé
Besoin de votre aide pour resoudre ce problème, merci
sir_ben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 18h28   #2
Membre éprouvé
 
Homme Hamid MIRA
Ingénieur développement logiciels
Inscription : septembre 2003
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Hamid MIRA
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2003
Messages : 177
Points : 413
Points : 413
As-tu déjà regardé le lien ci-dessous. Il traite de l'erreur que tu mentionnes.

http://support.microsoft.com/kb/828269

A+
hmira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 10h26   #3
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

Il faudrait plutôt se demander d'où provient l'erreur.
Quelle est la définition de la vue EXPORT.V_Param_Hospitalisation ?

En outre :

- Le code n'est pas aéré
- les CASE peuvent ne pas être "cherchés"
- L'appel d'une fonction scalaire (dbo.FUNC_FORMAT_DATE) est contre-performant
- Les requêtes contenant des agrégats sont similaires et devraient pouvoir être effectuées dans une seule et même requête
- L'utilité du second CASE est douteuse, puisque toutes les valeurs sont transformées en
Code :
THEN SUM(Montant_total_Ht)
Code :
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
CREATE VIEW EXPORT.V_Param_Fact_Admission
AS
	SELECT 'VTE' AS Code_journal
		, dbo.FUNC_FORMAT_DATE(Date_dossier_admission)AS Echeance
		, Num_facture_simple AS Num_piece
		, '411100' AS Num_compte_general
		, 'D' AS Sens
		, SUM(Montant_Pris_En_Charge) AS Montant_Debit
		, 0 AS Montant_credit
		,  'Facture'+'/'+ Nom_prenom + '/' + Employeur AS Libelle_ecriture
		, CASE WHEN Num_facture_simple LIKE '%10CFH%' THEN Libelle_Param_Tiers ELSE '411DIVERS' END AS Num_compte_Tiers
		, 'G' AS Type_ecriture
	FROM	EXPORT.V_Param_Hospitalisation
	WHERE	Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'
	AND	type_facture <> 'PROFORMA' --and Num_facture_simple like'%10FA%'
	GROUP	BY Date_dossier_admission, Num_facture_simple, Nom_prenom, Employeur, type_facture, Libelle_Param_Tiers
UNION ALL
	SELECT 'VTE' AS Code_journal
		, dbo.FUNC_FORMAT_DATE(Date_dossier_admission)AS Echeance
		, Num_facture_simple AS Num_piece
		, '411100' AS Num_compte_general
		, 'D' AS Sens
		, SUM(Montant_Patient) AS Montant_Debit
		, 0 AS Montant_credit
		, 'Facture'+'/'+ Nom_prenom + '/' + Employeur AS Libelle_ecriture
		, '411'+ Nom_patient AS Num_compte_Tiers
		, 'G' AS Type_ecriture
	FROM	EXPORT.V_Param_Hospitalisation2
	WHERE	Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'
	AND	type_facture <> 'PROFORMA' ---and Num_facture_simple like'%10CFH%'--and Num_facture_simple like'%10FA%'
	GROUP	BY Date_dossier_admission, Num_facture_simple, Nom_prenom, Employeur, type_facture, Libelle_Param_Tiers	
UNION ALL
	SELECT	'VTE' AS Code_journal
		, dbo.FUNC_FORMAT_DATE(Date_dossier_admission) AS Echeance
		, Num_facture_simple AS Num_piece
		, CASE Libelle_famille_acte
			WHEN 'CONSULTATION' THEN '706100'
			WHEN 'CHAMBRE' THEN '706104'
			WHEN 'LABORATOIRE' THEN '706103'
			WHEN 'HONORAIRES MEDECINS' THEN '706100'
			WHEN 'ECHOGRAPHIE' THEN '706103'
			WHEN 'ECHOGRAPHIE DOPPLER CARDIAQUE' THEN '706103'
			WHEN 'ECHOGRAPHIE DOPPLER CAROTIDIEN' THEN '706103'
			WHEN 'ECHOGRAPHIE DOPPLER VASCULAIRE' THEN '706103'
			WHEN 'RADIOLOGIE' THEN '706102'
			WHEN 'CHIRURGIE' THEN '706101'
			WHEN 'MEDICAMENTS' THEN '706100'
			WHEN 'ACCOUCHEMENTS' THEN '706103'
			WHEN 'SOIN' THEN '706103'
			WHEN 'AUTRES SERVICES' THEN '706103'
			WHEN 'BLOC OPERATOIRE' THEN '706103'
			WHEN 'CARDIOLOGIE' THEN '706100'
			WHEN 'GYNECOLOGIE' THEN '706100'
			WHEN 'MEDECINE INTERNE' THEN '706103'
			WHEN 'REANIMATION' THEN '706103'
			WHEN 'ORL ET CCF' THEN '706100'
			WHEN 'URGENCES' THEN '706103'
			WHEN 'VISCERALE' THEN '706103'
			WHEN 'IRM' THEN '706103'
			WHEN 'SCANNER' THEN '706102'
			WHEN 'OPHTALMOLOGIE' THEN '706100'
			WHEN 'ORTHOPEDIE' THEN '706100'
			WHEN 'SOINS INTENSIFS' THEN '706103'
			WHEN 'GRANDS BRULES' THEN '706103'
			WHEN 'ACTES MEDICAUX INFIRMIERS' THEN '706103'
			WHEN 'DENTISTERIE' THEN '706100'
			WHEN 'GASTROLOGIE' THEN '706100'
			WHEN 'CERTIFICATS' THEN '706103'
			WHEN 'AVANCE HOSPITALISATION' THEN '471201'
			WHEN 'PHARMACIE' THEN '701100'
			WHEN 'RETRAIT CAUTION' THEN '471201'
			WHEN 'VISITE' THEN '706100'
			WHEN 'AVANCE OU CAUTION HOSPITALISATION' THEN '471201'
			WHEN 'ENDOCRINOLOGIE' THEN '706100'
			WHEN 'NEUROLOGIE' THEN '706100'
			WHEN 'KINESITHERAPIE' THEN '706100'
			WHEN 'DERMATOLOGIE' THEN '706100'
			WHEN 'ANESTHESIE' THEN '706103'
			WHEN 'PRESTATIONS' THEN '706103'
			WHEN 'AMBULANCE' THEN '706103'
			WHEN 'CAUTIONS' THEN '471201'
			WHEN 'COUVEUSE SOINS INTENSIFS/JOUR' THEN '706103'
			WHEN 'PHOTOTHERAPIE' THEN '706103'
			WHEN 'AMNIOCENTESE' THEN '706103'
			WHEN 'DIVERS' THEN '706103'
			WHEN 'OXYGENE EN URGENCE' THEN '706103'
			WHEN 'FORFAIT JOURNALIER' THEN '706103'
			-- WHEN Code_salle ‹› '' THEN '443200'
			WHEN 'FRAIS D''HOSPITALISATION' THEN '706103'
		END AS Num_compte_general
		, 'C' AS Sens
		, 0 AS Montant_Debit
		CASE Libelle_famille_acte
			WHEN 'CONSULTATION' THEN SUM(Montant_total_Ht)
			-- WHEN Code_salle ‹› '' THEN SUM(Montant_Tva)
			WHEN 'CHAMBRE' THEN SUM(Montant_total_Ht)
			WHEN 'LABORATOIRE' THEN SUM(Montant_total_Ht)
			WHEN 'HONORAIRES MEDECINS' THEN SUM(Montant_total_Ht)
			WHEN 'ECHOGRAPHIE' THEN SUM(Montant_total_Ht)
			WHEN 'ECHOGRAPHIE DOPPLER CARDIAQUE' THEN SUM(Montant_total_Ht)
			WHEN 'ECHOGRAPHIE DOPPLER CAROTIDIEN' THEN SUM(Montant_total_Ht)
			WHEN 'ECHOGRAPHIE DOPPLER VASCULAIRE' THEN SUM(Montant_total_Ht)
			WHEN 'RADIOLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'CHIRURGIE' THEN SUM(Montant_total_Ht)
			WHEN 'MEDICAMENTS' THEN SUM(Montant_total_Ht)
			WHEN 'ACCOUCHEMENTS' THEN SUM(Montant_total_Ht)
			WHEN 'SOIN' THEN SUM(Montant_total_Ht)
			WHEN 'AUTRES SERVICES' THEN SUM(Montant_total_Ht)
			WHEN 'BLOC OPERATOIRE' THEN SUM(Montant_total_Ht)
			WHEN 'CARDIOLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'GYNECOLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'MEDECINE INTERNE' THEN SUM(Montant_total_Ht)
			WHEN 'REANIMATION' THEN SUM(Montant_total_Ht)
			WHEN 'ORL ET CCF' THEN SUM(Montant_total_Ht)
			WHEN 'URGENCES' THEN SUM(Montant_total_Ht)
			WHEN 'VISCERALE' THEN SUM(Montant_total_Ht)
			WHEN 'IRM' THEN SUM(Montant_total_Ht)
			WHEN 'SCANNER' THEN SUM(Montant_total_Ht)
			WHEN 'OPHTALMOLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'ORTHOPEDIE' THEN SUM(Montant_total_Ht)
			WHEN 'SOINS INTENSIFS' THEN SUM(Montant_total_Ht)
			WHEN 'GRANDS BRULES' THEN SUM(Montant_total_Ht)
			WHEN 'ACTES MEDICAUX INFIRMIERS' THEN SUM(Montant_total_Ht)
			WHEN 'DENTISTERIE' THEN SUM(Montant_total_Ht)
			WHEN 'GASTROLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'CERTIFICATS' THEN SUM(Montant_total_Ht)
			WHEN 'AVANCE HOSPITALISATION' THEN SUM(Montant_total_Ht)
			WHEN 'PHARMACIE' THEN SUM(Montant_total_Ht)
			WHEN 'RETRAIT CAUTION' THEN SUM(Montant_total_Ht)
			WHEN 'VISITE' THEN SUM(Montant_total_Ht)
			WHEN 'AVANCE OU CAUTION HOSPITALISATION' THEN SUM(Montant_total_Ht)
			WHEN 'ENDOCRINOLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'NEUROLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'KINESITHERAPIE' THEN SUM(Montant_total_Ht)
			WHEN 'DERMATOLOGIE' THEN SUM(Montant_total_Ht)
			WHEN 'ANESTHESIE' THEN SUM(Montant_total_Ht)
			WHEN 'PRESTATIONS' THEN SUM(Montant_total_Ht)
			WHEN 'AMBULANCE' THEN SUM(Montant_total_Ht)
			WHEN 'CAUTIONS' THEN SUM(Montant_total_Ht)
			WHEN 'COUVEUSE SOINS INTENSIFS/JOUR' THEN SUM(Montant_total_Ht)
			WHEN 'PHOTOTHERAPIE' THEN SUM(Montant_total_Ht)
			WHEN 'AMNIOCENTESE' THEN SUM(Montant_total_Ht)
			WHEN 'DIVERS' THEN SUM(Montant_total_Ht)
			WHEN 'OXYGENE EN URGENCE' THEN SUM(Montant_total_Ht)
			WHEN 'FORFAIT JOURNALIER' THEN SUM(Montant_total_Ht)
			WHEN 'FRAIS D''HOSPITALISATION' THEN SUM(Montant_total_Ht)
		END AS Montant_credit
		, CASE Libelle_famille_acte
			WHEN 'CONSULTATION' THEN 'CONSULTATION'
			WHEN 'CHAMBRE' THEN 'HOSPITALISATION'
			-- WHEN Code_salle ‹› '' THEN 'TVA FACTUREE/PRESTATION DE SERVICE'
			WHEN 'LABORATOIRE' THEN 'LABORATOIRE'
			WHEN 'HONORAIRES MEDECINS' THEN 'HONORAIRES MEDECINS'
			WHEN 'ECHOGRAPHIE' THEN 'ECHOGRAPHIE'
			WHEN 'ECHOGRAPHIE DOPPLER CARDIAQUE' THEN 'ECHOGRAPHIE DOPPLER CARDIAQUE'
			WHEN 'ECHOGRAPHIE DOPPLER CAROTIDIEN' THEN 'ECHOGRAPHIE DOPPLER CAROTIDIEN'
			WHEN 'ECHOGRAPHIE DOPPLER VASCULAIRE' THEN 'ECHOGRAPHIE DOPPLER VASCULAIRE'
			WHEN 'RADIOLOGIE' THEN 'RADIOLOGIE'
			WHEN 'CHIRURGIE' THEN 'CHIRURGIE'
			WHEN 'MEDICAMENTS' THEN 'MEDICAMENTS'
			WHEN 'ACCOUCHEMENTS' THEN 'ACCOUCHEMENTS'
			WHEN 'SOIN' THEN 'SOIN'
			WHEN 'AUTRES SERVICES' THEN 'AUTRES SERVICES'
			WHEN 'BLOC OPERATOIRE' THEN 'BLOC OPERATOIRE'
			WHEN 'CARDIOLOGIE' THEN 'CARDIOLOGIE'
			WHEN 'GYNECOLOGIE' THEN 'GYNECOLOGIE'
			WHEN 'MEDECINE INTERNE' THEN 'MEDECINE INTERNE'
			WHEN 'REANIMATION' THEN 'REANIMATION'
			WHEN 'ORL ET CCF' THEN 'ORL ET CCF'
			WHEN 'URGENCES' THEN 'URGENCES'
			WHEN 'VISCERALE' THEN 'VISCERALE'
			WHEN 'IRM' THEN 'IRM'
			WHEN 'SCANNER' THEN 'SCANNER'
			WHEN 'OPHTALMOLOGIE' THEN 'OPHTALMOLOGIE'
			WHEN 'ORTHOPEDIE' THEN 'ORTHOPEDIE'
			WHEN 'SOINS INTENSIFS' THEN 'SOINS INTENSIFS'
			WHEN 'GRANDS BRULES' THEN 'GRANDS BRULES'
			WHEN 'ACTES MEDICAUX INFIRMIERS' THEN 'ACTES MEDICAUX INFIRMIERS'
			WHEN 'DENTISTERIE' THEN 'DENTISTERIE'
			WHEN 'GASTROLOGIE' THEN 'GASTROLOGIE'
			WHEN 'CERTIFICATS' THEN 'CERTIFICATS'
			WHEN 'AVANCE HOSPITALISATION' THEN 'AVANCE HOSPITALISATION'
			WHEN 'PHARMACIE' THEN 'PHARMACIE'
			WHEN 'RETRAIT CAUTION' THEN 'RETRAIT CAUTION'
			WHEN 'VISITE' THEN 'VISITE'
			WHEN 'AVANCE OU CAUTION HOSPITALISATION' THEN 'AVANCE OU CAUTION HOSPITALISATION'
			WHEN 'ENDOCRINOLOGIE' THEN 'ENDOCRINOLOGIE'
			WHEN 'NEUROLOGIE' THEN 'NEUROLOGIE'
			WHEN 'KINESITHERAPIE' THEN 'KINESITHERAPIE'
			WHEN 'DERMATOLOGIE' THEN 'DERMATOLOGIE'
			WHEN 'ANESTHESIE' THEN 'ANESTHESIE'
			WHEN 'PRESTATIONS' THEN 'PRESTATIONS'
			WHEN 'AMBULANCE' THEN 'AMBULANCE'
			WHEN 'CAUTIONS' THEN 'CAUTIONS'
			WHEN 'COUVEUSE SOINS INTENSIFS/JOUR' THEN 'COUVEUSE SOINS INTENSIFS/JOUR'
			WHEN 'PHOTOTHERAPIE' THEN 'PHOTOTHERAPIE'
			WHEN 'AMNIOCENTESE' THEN 'AMNIOCENTESE'
			WHEN 'DIVERS' THEN 'DIVERS'
			WHEN 'OXYGENE EN URGENCE' THEN 'OXYGENE EN URGENCE'
			WHEN 'FORFAIT JOURNALIER' THEN 'FORFAIT JOURNALIER'
			WHEN 'FRAIS D''HOSPITALISATION' THEN 'FRAIS D''HOSPITALISATION'
		END AS Libelle_ecriture,
		'' AS Num_compte_Tiers
		, 'G' AS Type_ecriture
	FROM	EXPORT.V_Param_Hospitalisation
	WHERE	Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'
	AND	type_facture <> 'PROFORMA' --and Num_facture_simple like'%10FA%'
	GROUP	BY Date_dossier_admission , Num_facture_simple, Libelle_FAMILLE_ACTE
UNION ALL
	SELECT	'VTE' AS Code_journal
		, dbo.FUNC_FORMAT_DATE(Date_dossier_admission) AS Echeance
		, Num_facture_simple AS Num_piece
		, '443200' AS Num_compte_general
		, 'C' AS Sens
		, 0 AS Montant_Debit
		, SUM(Montant_Tva) AS Montant_credit
		, 'TVA FACTUREE/PRESTATION DE SERVICE' Libelle_ecriture
		, '' AS Num_compte_Tiers
		, 'G' AS Type_ecriture
	FROM	EXPORT.V_Param_Hospitalisation2
	WHERE	Date_dossier_admission BETWEEN '01/01/2010' AND '31/01/2010'
	AND	type_facture <> 'PROFORMA'--and Num_facture_simple LIKE '%10FA%'
	GROUP	BY Date_dossier_admission,Num_facture_simple
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h07.


 
 
 
 
Partenaires

Hébergement Web