Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 9425)
+++ /trunk/ippTools/src/dettool.c	(revision 9426)
@@ -1646,11 +1646,9 @@
         "   detStackedImfile.*"
         " FROM detStackedImfile"
-        " LEFT JOIN detNormalizedImfile"
-        "   USING(det_id, iteration, class_id)"
+        " JOIN detRun"
+        "   USING(det_id, iteration)"
         " WHERE"
-        "   detNormalizedImfile.det_id IS NULL"
-        "   AND detNormalizedImfile.iteration IS NULL"
-        "   AND detNormalizedImfile.class_id IS NULL"
-        );
+        "   detRun.state = 'run'"
+    );
 
     if (config->where) {
@@ -2474,5 +2472,13 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    psString query = psStringCopy("SELECT * FROM detNormalizedExp");
+    psString query = psStringCopy(
+        "SELECT"
+        "   detNormalizedExp.*"
+        " FROM detNormalizedExp"
+        " JOIN detRun"
+        "   USING(det_id, iteration)"
+        " WHERE"
+        "   detRun.state = 'run'"
+    );
 
     if (config->where) {
@@ -2690,8 +2696,9 @@
 
     psString query = psStringCopy(
-        "SELECT detNormalizedImfile.*"
+        "SELECT"
+        " detNormalizedImfile.*"
         " FROM detNormalizedImfile"
         " JOIN detRun"
-        "   ON detNormalizedImfile.det_id = detRun.det_id"
+        "   USING(det_id, iteration)"
         " WHERE"
         "   detRun.state = 'run'"
@@ -2699,5 +2706,4 @@
 
     if (config->where) {
-	// XXX need to replace det_id with detNormalizedImfile.det_id
 	bool status;
 	int iteration = psMetadataLookupS32 (&status, config->where, "iteration");
@@ -3018,11 +3024,9 @@
         "   detResidImfile.*"
         " FROM detResidImfile"
-        " LEFT JOIN detResidExp"
-        "   USING(det_id, iteration, exp_tag)"
+        " JOIN detRun"
+        "   USING(det_id, iteration)"
         " WHERE"
-        "   detResidExp.det_id IS NULL"
-        "   AND detResidExp.iteration IS NULL"
-        "   AnD detResidExp.exp_tag IS NULL"
-        );
+        "   detRun.state = 'run'"
+    );
 
     if (config->where) {
@@ -3488,15 +3492,14 @@
 
     psString query = psStringCopy(
-            "SELECT"
-            "   detResidExp.*,"
-            "   detInputExp.include"
-            " FROM detResidExp"
-            " JOIN detInputExp"
-            "   USING(det_id, exp_tag, iteration)"
-            " JOIN detRun"
-            "   ON detResidExp.det_id = detRun.det_id"
-            "   AND detResidExp.iteration = detRun.iteration"
-            " WHERE"
-            "   detRun.state = 'run'"
+        "SELECT"
+        "   detResidExp.*,"
+        "   detInputExp.include"
+        " FROM detResidExp"
+        " JOIN detInputExp"
+        "   USING(det_id, iteration, exp_tag)"
+        " JOIN detRun"
+        "   USING(det_id, iteration)"
+        " WHERE"
+        "   detRun.state = 'run'"
     );
 
