嘿大家在这里是我的代码,下面有五个表, 我试图做的是使用FACTURE表加入并利用每个表,结果应该是一个表(NUM_CMD / NOM_CLT / PRENOM_CLT / MONTANT_TOTAL_FACT),它表示客户端的名称及其命令编号和每个的总价格他买的产品(MONTANT_TOTAL_FACT = [PRIX_UNIT] * [QTE]) 类似的东西
======================================================
| NUM_CMD | PRENOM_CLT | NOM_CLT | MONTANT_TOTAL_FACT|
======================================================
| xxxxxx | xxxxxxxxxx | 3 | xxxxxxxxx |
/*==============================================================*/
/* Table: CLIENT */
/*==============================================================*/
create table CLIENT (
NUM_CLT numeric not null,
NOM_CLT text null,
PRENOM_CLT text null,
VILLE_CLT text null,
ADRESSE_CLT text null,
TYPE_CLT text null,
CP_CLT text null,
constraint PK_CLIENT primary key(NUM_CLT)
)
Insert Into CLIENT Values(1,'Hauari','Kamal','Nador','Hay Matar rue 22','Grossiste','62010');
Insert Into CLIENT Values(2,'Kharrati','Mohamed','Segangan','Hay zraqtoni rue 50','Grossiste','62100');
Insert Into CLIENT Values(3,'El Mahi','Noureddine','Salwan','Hay wafae rue 10','Particulier','62000');
Insert Into CLIENT Values(4,'Chakir','Hassan','Bni nsar','Hay Melilla rue 101','Particulier','62070');
Insert Into CLIENT Values(5,'Benchikh','Youness','Nador','Hay bouaroro rue 122','Grossiste','62013');
Insert Into CLIENT Values(6,'Esbai','Fouad','Nador','Hay Regolaris rue 111','Particulier','62090');
/*==============================================================*/
/* Table: COMMANDE */
/*==============================================================*/
create table COMMANDE (
NUM_CMD numeric not null,
DATE_CMD varchar(30) null,
NUM_CLT numeric not null,
constraint pk_cmd primary key(NUM_CMD),
constraint fK_clt foreign key(NUM_CLT) references CLIENT
)
Insert Into COMMANDE Values(1,'12-avr-2017',6)
Insert Into COMMANDE Values(2,'12-avr-2017',5)
Insert Into COMMANDE Values(3,'12-mai-2017',4)
Insert Into COMMANDE Values(4,'14-mai-2017',3)
Insert Into COMMANDE Values(5,'20-mai-2017',2)
Insert Into COMMANDE Values(6,'30-mai-2017',1)
/*==============================================================*/
/* Table: PRODUIT */
/*==============================================================*/
create table PRODUIT (
REF_PRD numeric not null,
DESIGNATION text null,
PRIX_UNIT money null,
constraint PK_PRODUIT primary key(REF_PRD)
)
Insert Into Produit Values(1,'MONITEUR SONY 14P',1580)
Insert Into Produit Values(2,'MONITEUR ACER 14P',1400)
Insert Into Produit Values(3,'MONITEUR ACER 17P',4890)
Insert Into Produit Values(4,'MONITEUR PHILIPS 20P',10500)
Insert Into Produit Values(5,'MONITEUR PHILIPS 21P',14960)
Insert Into Produit Values(6,'DESKJET 540',2100)
Insert Into Produit Values(7,'CANON BJC4000',2700)
Insert Into Produit Values(8,'EPSON STYLUS',800)
Insert Into Produit Values(9,'CD ROM MITSUMI 4X',1650)
Insert Into Produit Values(10,'CD ROM SONY 4X',1980)
Insert Into Produit Values(11,'CD ROM TEAC 6x',2100)
Insert Into Produit Values(12,'SCANNER PRIMAX COULEUR',2000)
Insert Into Produit Values(13,'SCANNER PRIMAX MOBILE',2500)
Insert Into Produit Values(14,'CARTE SOUND BLASTER PRO',500)
Insert Into Produit Values(15,'CARTE SOUND BLASTER 16 VALUE',650)
Insert Into Produit Values(16,'CARIE SOUND BLASTER A WE 32',1680)
/*==============================================================*/
/* Table: LIGNE_COMMANDE */
/*==============================================================*/
create table LIGNE_COMMANDE (
NUM_LCMD numeric identity,
NUM_CMD numeric not null,
REF_PRD numeric not null,
QTE int null,
constraint pk_lg_cmd primary key(NUM_LCMD),
constraint fk_lg_cmd1 foreign key(NUM_CMD) references COMMANDE,
constraint fk_lg_cmd2 foreign key(REF_PRD) references PRODUIT
)
Insert Into LIGNE_COMMANDE Values(6,1,2)
Insert Into LIGNE_COMMANDE Values(5,2,2)
Insert Into LIGNE_COMMANDE Values(4,3,7)
Insert Into LIGNE_COMMANDE Values(3,4,5)
Insert Into LIGNE_COMMANDE Values(2,5,3)
Insert Into LIGNE_COMMANDE Values(2,6,2)
CREATE table FACTURE(
NUM_FACT int not null,
DATE_FACT varchar(30),
NUM_CMD numeric not null,
REF_PRD numeric not null,
NUM_LCMD numeric not null,
NUM_CLT numeric not null,
MONTANT_TOTAL_FACT float,
constraint pk_nf primary key(NUM_FACT),
constraint fk_nc1 foreign key(NUM_CMD) references COMMANDE,
constraint fk_nc2 foreign key(REF_PRD) references PRODUIT,
constraint fk_nc3 foreign key(NUM_LCMD) references LIGNE_COMMANDE,
constraint fk_nc4 foreign key(NUM_CLT) references CLIENT
);
--i try this one
select NOM_CLT,PRENOM_CLT,NUM_CMD,[PRIX_UNIT]*[QTE] as MONTANT_TOTAL_FACT from CLIENT,COMMANDE,PRODUIT,LIGNE_COMMANDE,FACTURE where
CLIENT.NUM_CLT = FACTURE.NUM_CLT and
COMMANDE.NUM_CMD = FACTURE.NUM_CMD and
PRODUIT.REF_PRD = FACTURE.REF_PRD and
LIGNE_COMMANDE.NUM_LCMD= FACTURE.NUM_LCMD;
-- the result was 'Nom de colonne 'NUM_CMD' ambigu'
答案 0 :(得分:0)
您应该使用awk -v n=2 -v ps='A' -v pe='D' 'NR==FNR {
if ($0 ~ ps)
start=FNR
else if ($0 ~ pe)
stop=FNR+n
if (stop)
nextfile
else
next
}
!stop || FNR<start || FNR>stop' file file
和INNER JOIN
来获得所需的结果:
GROUP BY