]> Some of my projects - localmylist.git/commitdiff
Account for file/ep relations for the total episodes watched in an anime.
authorAPTX <marek321@gmail.com>
Sun, 28 Apr 2013 12:45:24 +0000 (14:45 +0200)
committerAPTX <marek321@gmail.com>
Sun, 28 Apr 2013 12:45:24 +0000 (14:45 +0200)
localmylist/mylistnode.cpp

index b629b465fceb65b3693af7e156b94f749dd22a7d..cd57eb4ff3153297a5d21cee104eb1b8d4e44210 100644 (file)
@@ -585,11 +585,18 @@ QString MyListAnimeNode::baseQuery()
        "               (SELECT COUNT(e.eid) "
        "                       FROM episode e "
        "                       WHERE e.aid = a.aid), "
-       "               (SELECT COUNT(DISTINCT f.eid) "
-       "                       FROM episode e "
-       "                       JOIN file f ON (f.eid = e.eid) "
-       "                       WHERE e.aid = a.aid "
-       "                               AND f.my_watched IS NOT NULL), "
+       "               (SELECT COUNT(DISTINCT eid) "
+       "                       FROM "
+       "                       (SELECT e.eid FROM episode e "
+       "                               JOIN file f ON (f.eid = e.eid) "
+       "                               WHERE e.aid = a.aid "
+       "                                       AND f.my_watched IS NOT NULL "
+       "                       UNION "
+       "                       SELECT e.eid FROM episode e "
+       "                               JOIN file_episode_rel fer ON fer.eid = e.eid "
+       "                               JOIN file f ON f.fid = fer.fid "
+       "                               WHERE e.aid = a.aid "
+       "                                       AND f.my_watched IS NOT NULL) sq), "
        "               (SELECT CASE WHEN array_length(my_state_array, 1) > 1 THEN -1 ELSE my_state_array[1] END "
        "                       FROM "
        "                       (SELECT array_agg(my_state) my_state_array "