It is much simpler to change the mask "Artists with at least <ID:1> (complete) Albums having at least <ID:3> files":
- replace SongArtists.ID with Publishers.ID
- replace IfNull(ArtistsSongs.PersonType, 1) = 1 with ArtistsSongs.PersonType = 8
It is much simpler to change the mask "Artists with at least <ID:1> (complete) Albums having at least <ID:3> files":
Code: Select all
Songs.IDAlbum || '@' || Publishers.ID IN (SELECT DISTINCT IDAlbum || '@' || T0.IDArtist FROM Songs INNER JOIN ArtistsSongs ON Songs.ID = ArtistsSongs.IDSong AND ArtistsSongs.PersonType = 8 INNER JOIN Artists ON ArtistsSongs.IDArtist = Artists.ID INNER JOIN (SELECT IDArtist, ',' || RTrim(Group_Concat(IDAlbum)) || ',' AS ConcFld FROM Albums INNER JOIN (SELECT IDAlbum, ArtistsSongs.IDArtist, Count(*) AS CountFld1 FROM Songs INNER JOIN ArtistsSongs ON Songs.ID = ArtistsSongs.IDSong AND ArtistsSongs.PersonType = 8 INNER JOIN Artists ON ArtistsSongs.IDArtist = Artists.ID GROUP BY IDAlbum, ArtistsSongs.IDArtist) ON ID = IDAlbum AND Tracks = CountFld1 WHERE Tracks >= <Number|Caption:Min. number of files per album|Value:5|MinValue:1|MaxValue:20|ID:3> AND IDAlbum > 0 <If|Caption:Only complete albums having number of files equal to maximal track #|Value=1|ID:2>AND IDAlbum IN (SELECT IDAlbum FROM Albums INNER JOIN (SELECT IDAlbum, Count(*) AS CntFld FROM Songs GROUP BY IDAlbum, DiscNumber HAVING CntFld = Max(Cast(TrackNumber As integer))) AS T1 ON Albums.ID = T1.IDAlbum GROUP BY IDAlbum HAVING Albums.Tracks = Sum(CntFld)) <End If>GROUP BY IDArtist HAVING Count(*) >= <Number|Caption:Minimal number of albums|Value:2|MinValue:1|MaxValue:20|ID:1>) AS T0 ON T0.IDArtist = ArtistsSongs.IDArtist AND T0.ConcFld Like '%,' || Songs.IDAlbum || ',%' WHERE Songs.IDAlbum > 0)
It works fine on my computer. And that is not a full mask, only the Filter qualifier.chrisdukes wrote: ↑Sat Apr 24, 2021 6:59 pm I replaced everything but I'm getting an error. Here's the mask:
Code: Select all
Songs.IDAlbum || '@' || Publishers.ID IN (SELECT DISTINCT IDAlbum || '@' || T0.IDArtist FROM Songs INNER JOIN ArtistsSongs ON Songs.ID = ArtistsSongs.IDSong AND ArtistsSongs.PersonType = 8 INNER JOIN Artists ON ArtistsSongs.IDArtist = Artists.ID INNER JOIN (SELECT IDArtist, ',' || RTrim(Group_Concat(IDAlbum)) || ',' AS ConcFld FROM Albums INNER JOIN (SELECT IDAlbum, ArtistsSongs.IDArtist, Count(*) AS CountFld1 FROM Songs INNER JOIN ArtistsSongs ON Songs.ID = ArtistsSongs.IDSong AND ArtistsSongs.PersonType = 8 INNER JOIN Artists ON ArtistsSongs.IDArtist = Artists.ID GROUP BY IDAlbum, ArtistsSongs.IDArtist) ON ID = IDAlbum AND Tracks = CountFld1 WHERE Tracks >= <Number|Caption:Min. number of files per album|Value:5|MinValue:1|MaxValue:20|ID:3> AND IDAlbum > 0 <If|Caption:Only complete albums having number of files equal to maximal track #|Value=1|ID:2>AND IDAlbum IN (SELECT IDAlbum FROM Albums INNER JOIN (SELECT IDAlbum, Count(*) AS CntFld FROM Songs GROUP BY IDAlbum, DiscNumber HAVING CntFld = Max(Cast(TrackNumber As integer))) AS T1 ON Albums.ID = T1.IDAlbum GROUP BY IDAlbum HAVING Albums.Tracks = Sum(CntFld)) <End If>GROUP BY IDArtist HAVING Count(*) >= <Number|Caption:Minimal number of albums|Value:2|MinValue:1|MaxValue:20|ID:1>) AS T0 ON T0.IDArtist = ArtistsSongs.IDArtist AND T0.ConcFld Like '%,' || Songs.IDAlbum || ',%' WHERE Songs.IDAlbum > 0)
Code: Select all
Publisher w2 Albums|Position:Last child|Child of:Library|MM filter:Reconcile|Filter:Songs.IDAlbum || '@' || Publishers.ID IN (SELECT DISTINCT IDAlbum || '@' || T0.IDArtist FROM Songs INNER JOIN ArtistsSongs ON Songs.ID = ArtistsSongs.IDSong AND ArtistsSongs.PersonType = 8 INNER JOIN Artists ON ArtistsSongs.IDArtist = Artists.ID INNER JOIN (SELECT IDArtist, ',' || RTrim(Group_Concat(IDAlbum)) || ',' AS ConcFld FROM Albums INNER JOIN (SELECT IDAlbum, ArtistsSongs.IDArtist, Count(*) AS CountFld1 FROM Songs INNER JOIN ArtistsSongs ON Songs.ID = ArtistsSongs.IDSong AND ArtistsSongs.PersonType = 8 INNER JOIN Artists ON ArtistsSongs.IDArtist = Artists.ID GROUP BY IDAlbum, ArtistsSongs.IDArtist) ON ID = IDAlbum AND Tracks = CountFld1 WHERE Tracks >= <Number|Caption:Min. number of files per album|Value:5|MinValue:1|MaxValue:20|ID:3> AND IDAlbum > 0 <If|Caption:Only complete albums having number of files equal to maximal track #|Value=1|ID:2>AND IDAlbum IN (SELECT IDAlbum FROM Albums INNER JOIN (SELECT IDAlbum, Count(*) AS CntFld FROM Songs GROUP BY IDAlbum, DiscNumber HAVING CntFld = Max(Cast(TrackNumber As integer))) AS T1 ON Albums.ID = T1.IDAlbum GROUP BY IDAlbum HAVING Albums.Tracks = Sum(CntFld)) <End If>GROUP BY IDArtist HAVING Count(*) >= <Number|Caption:Minimal number of albums|Value:2|MinValue:1|MaxValue:20|ID:1>) AS T0 ON T0.IDArtist = ArtistsSongs.IDArtist AND T0.ConcFld Like '%,' || Songs.IDAlbum || ',%' WHERE Songs.IDAlbum > 0)\<Publisher|Sort by:Count(Album)|Statistic:Count(Album)>
Code: Select all
The mask defining this Magic Node produced an error. Edit the mask and try again. (The error probably resides in the Filter or SQL filter qualifiers.)
Why didn't you install the latest version that I sent you?
The old sample masks are kept or upgraded, so you could remove them during uninstall of the old version. In fact, I already told you so in the e-mail sent with the new version, to get correctly installed and sorted the new sample masks.chrisdukes wrote: ↑Mon Apr 26, 2021 11:57 am Do the old examples have anything the new ones don't? Or, can I just delete the old examples?
It is not possible that you create nodes in the way you want. Maybe I could try to allow such thing in the future, but for now, if your only goal is just to find the files with Involved People having two or more subroles, you could try this Filter: <Involved People> GLOB '*(*,*)*'
That will give you files that have covers, but not in tags. If you want all files with "missing" art in tags, maybe you could try this Filter:
I don't understand what you want to say. What do you mean by "instances of the count"? Could you post a full mask and tell me which node should be inline-edited? And please provide a few real examples of the result that you expect to get.
Code: Select all
<Group|Name:63 (MN) Tech 4- fix elements (temp)>\<Group|Name:Special Rel. IDs>\B10_ (AMI.A1.P)|Position:Before|Child of:Now Playing|Filter:<Path> LIKE '%\AMI.A1.P\%' AND <Path> LIKE '%B10_%'|Statistic:Count(Album)\<Album artist>