Bonjour a tous, j'ai un probleme avec une query... voila les tables:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
DROP TABLE IF EXISTS `Residenzialita`.`Registrazione_Fatture`;
CREATE TABLE  `Residenzialita`.`Registrazione_Fatture` (
  `Id_fatture` int(10) unsigned NOT NULL auto_increment,
  `Anno` int(10) unsigned NOT NULL,
  `Reparto` int(10) unsigned NOT NULL,
  `Data_Inizio_Competenza` date NOT NULL,
  `Data_Fine_Competenza` date default NULL,
  `Struttura` int(10) unsigned NOT NULL,
  `Note` varchar(5000) character set latin1 default NULL,
  `Importo` float default NULL,
  `User_cre` varchar(250) character set latin1 default NULL,
  `Time_cre` datetime default NULL,
  `User_mod` varchar(250) character set latin1 default NULL,
  `Time_mod` datetime default NULL,
  `Time_lock` datetime default NULL,
  PRIMARY KEY  (`Id_fatture`,`Anno`,`Reparto`,`Struttura`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs ROW_FORMAT=DYNAMIC;
 
DROP TABLE IF EXISTS `Residenzialita`.`Registrazione_inserimenti`;
CREATE TABLE  `Residenzialita`.`Registrazione_inserimenti` (
  `Anno` int(10) unsigned NOT NULL,
  `Reparto` int(10) unsigned NOT NULL,
  `Paziente` varchar(45) character set latin1 NOT NULL,
  `Data_Ingresso` date NOT NULL,
  `Tipo` int(10) unsigned NOT NULL,
  `Struttura` int(10) unsigned NOT NULL,
  `Tipologia` int(10) unsigned NOT NULL,
  `Motivazione` varchar(5000) character set latin1 default NULL,
  `Importo_stimato` float default NULL,
  `Autorizzazione` int(10) unsigned default '0',
  `Data_Uscita` date default NULL,
  PRIMARY KEY  (`Anno`,`Reparto`,`Paziente`,`Tipo`,`Struttura`,`Tipologia`),
  KEY `FK_Registrazione_inserimenti_1` (`Anno`,`Tipologia`),
  KEY `FK_Registrazione_inserimenti_2` (`Anno`,`Struttura`),
  KEY `FK_Registrazione_inserimenti_4` (`Anno`,`Tipo`),
  KEY `FK_Registrazione_inserimenti_6` (`Anno`,`Autorizzazione`),
  CONSTRAINT `FK_Registrazione_inserimenti_1` FOREIGN KEY (`Anno`, `Tipologia`) REFERENCES `Tipologia_paziente` (`Anno`, `Tipologia`),
  CONSTRAINT `FK_Registrazione_inserimenti_5` FOREIGN KEY (`Anno`, `Reparto`) REFERENCES `Budget_assegnato` (`anno`, `Reparto`),
  CONSTRAINT `FK_Registrazione_inserimenti_6` FOREIGN KEY (`Anno`, `Autorizzazione`) REFERENCES `Tabella_autorizzazioni` (`Anno`, `Indice`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs;
 
DROP TABLE IF EXISTS `Residenzialita`.`Trasformazione_Fatture`;
CREATE TABLE  `Residenzialita`.`Trasformazione_Fatture` (
  `Id_fatture` int(10) unsigned NOT NULL,
  `Anno` int(10) unsigned NOT NULL,
  `Reparto` int(10) unsigned NOT NULL,
  `Data_Inizio_Competenza` date NOT NULL,
  `Data_Fine_Competenza` date default NULL,
  `Struttura` int(10) unsigned NOT NULL,
  `Note` varchar(5000) character set latin1 default NULL,
  `Importo` float default NULL,
  `User_cre` varchar(250) character set latin1 default NULL,
  `Time_cre` datetime default NULL,
  `User_mod` varchar(250) character set latin1 default NULL,
  `Time_mod` datetime default NULL,
  `Time_lock` datetime default NULL,
  `Data` int(10) unsigned NOT NULL default '0',
  `Giorni` int(10) unsigned NOT NULL,
  `Importo_giornata` decimal(31,10) NOT NULL,
  PRIMARY KEY  (`Id_fatture`,`Anno`,`Reparto`,`Struttura`,`Data`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs ROW_FORMAT=DYNAMIC;
voila les query

INSERTION

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
select a.*, upper(concat(b.nome, " ", b.cognome)) as cognome_nome, Upper(T.Descrizione) as Descrizione from
(select Anno, Mese, Upper(Reparto) as Reparto, Upper(Paziente) as Paziente, Upper(Struttura) as Struttura, sum(Importo_stimato) as Importo
from Residenzialita.Registrazione_conteggi 
group by Anno, Mese, Reparto, Struttura, Paziente) a
join Residenzialita.Elenco_pazienti b 
on b.idElenco_pazienti=a.Paziente
join Residenzialita.Tabella_Strutture T 
on T.struttura=a.Struttura
FACTURE

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select a.*, Upper(T.Descrizione) as Descrizione from
(select year(data) as Anno, month(data) as Mese, Upper(Reparto) as Reparto, Upper(Struttura) as Struttura, sum(Importo_giornata) as Importo
from Residenzialita.Trasformazione_Fatture
group by  year(data), month(data),Reparto, Struttura) a
join Residenzialita.Tabella_Strutture T 
on T.struttura=a.Struttura
ce que je voudrais faire est une query qui visualise la query FACTURE, mais si les champs Anno, mese, struttura, importo sont vides alors il faut mettre pour la meme structure, la meme année, e le meme mois, l'Importo qui correspond, donc la query INSERTION. s'il y a aucun donnée alors laisser les champs vides.


comment je peux faire?