Bonjour,
J'ai quelques requête à faire sur une base de donnée en SQL

la base :
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
TABLE PROJECT
  PROJECTID      CHARACTER(10) (Primary Key)
  PROJECT_NAME   CHARACTER(40)
 
TABLE COMPOUND
  COMPID	     CHARACTER(15) (Primary Key)
  STRUCTURE      BLOB
 
TABLE REACTION
  REACTIONID     INTEGER (Primary Key)
  COMPID         CHARACTER(15)
  BATCHNO        CHARACTER(35)(Unique Key)
  PROJECTID      CHARACTER(10)
  LIBRARYNAME    CHARACTER(35)
 
TABLE BIOLOGICAL_DATA
  COMPID              CHARACTER(15)
  BATCHNO             CHARACTER(35)
  TESTID              NUMBER
  PROJECTID           CHARACTER(10)
  NUM_VALUE           NUMBER
  ANALYTICALID        INTEGER
  REACTIONID          INTEGER
  BIODATAID           INTEGER (Primary Key)
 
TABLE SAMPLE_DATA
  ANALYTICALID         INTEGER (Primary Key)
  REACTIONID           INTEGER  
  PROJECTID            CHARACTER(10)
  BARCODE              CHARACTER(35)
  CONTAINERID          CHARACTER(35)
  WELL                 NUMBER
  QUANTITY             NUMBER
  UNIT                 CHARACTER(10)
  PURITY               NUMBER
Mes requète :

1) obtenir la liste de tous les projets (PROJECTID) et le nombre total de "batches" (repéré par, je pense, BATCHNO) pour chaqu'un.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select PROJECTID, count(BATCHNO) asnumber of batches”
from PROJECT P, REACTION R
where P.PROJECTID = R.PROJECTID
2) obtenir la liste de tous les projets (PROJECTID) et le nombre total de "biological results" (repéré par, je pense, BIODATAID) pour chaqu'un.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select PROJECTID, count(BIODATAID) asnumber of  biological results”
from PROJECT P, BIOLOGICAL_DATA B
where P.PROJECTID = B.PROJECTID
3) obtenir la liste de tous les composants (COMPID) et le nombre total de "batches"(lots) et "sample"(échantillon) pour chaqu'un.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select COMPID, count(BATCHNO), sum(QUANTITY)
from BIOLOGICAL_DATA B, SAMPLE_DATA S
where B.ANALYTICALID = S.ANALYTICALID
4) obtenir la liste de tous les "batches"(lots) (BATCHNO) ayant une "purity" moyenne >50 pour les "samples"(échantillions) ayant une "quantity">10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select BATCHNO, avg(PURITY)
from REACTION R, SAMPLE_DATA S
where R.REACTIONID = S.REACTIONID
and S.QUANTITY <10
group by BATCHNO
having AVG(PURITY)<50
5) obtenir la liste de tous les "batches"(lots) (BATCHNO) n'ayant pas de "biological data"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select BATCHNO
from REACTION R
where R.BATCHNO not in(
		select BATCHNO from BIOLOGICAL_DATA )
Voilà c'est assez long je m'en excuse,

Est-ce quelqu'un peut me dire si mes réponses sont correctes, et sinon quelles sont fautes que je doit corriger ?

Je débute en SQL, donc toute aide est la bien venue !!

MERCI d'avance !!