It's not a script issue. It's a SQLite syntax issue. This is how I should have done it:
"DELETE FROM PodcastEpisodes"
See SQLite website for the syntax they use:
http://www.sqlite.org/lang.html

SELECT RTRIM(SongPath,REPLACE(SongPath,'\','')) Folder, SongTitle, Artist, Album, AlbumArtist
FROM Songs WHERE IDFolder IN
(SELECT IDFolder
FROM Songs
GROUP BY IDFolder
HAVING COUNT(DISTINCT Album)=1 AND COUNT(DISTINCT AlbumArtist)>1)SELECT RTRIM(SongPath,REPLACE(SongPath,'\','')) Folder, SongTitle, Artist, Album, AlbumArtist
FROM Songs WHERE IDFolder IN
(SELECT IDFolder
FROM Songs
GROUP BY IDFolder
HAVING COUNT(DISTINCT Album)=1 AND COUNT(CASE WHEN TRIM(AlbumArtist)='' THEN NULL ELSE 1 END)=0)SELECT ID, Artist, SongTitle, PlayCounter, COUNT(*) CalcPlayCount, LastTimePlayed, MAX(PlayDate) MaxHistPlayDate
FROM Played, Songs
WHERE Played.IDSong = Songs.ID
GROUP BY ID, Artist, SongTitle, PlayCounter, LastTimePlayed
HAVING PlayCounter<>COUNT(*) OR CAST(LastTimePlayed AS TEXT)<>CAST(MAX(PlayDate) AS TEXT)UPDATE Songs
SET PlayCounter = (SELECT COUNT(*) FROM Played WHERE Played.IDSong = Songs.ID GROUP BY Played.IDSong),
LastTimePlayed = (SELECT MAX(PlayDate) FROM Played WHERE Played.IDSong = Songs.ID GROUP BY Played.IDSong)
WHERE Songs.ID IN
(SELECT IDSong FROM Played, Songs WHERE Played.IDSong = Songs.ID GROUP BY IDSong
HAVING PlayCounter<>COUNT(*) OR CAST(LastTimePlayed AS TEXT)<>CAST(MAX(PlayDate) AS TEXT))There was a problem querying the database:
Error executing QL "UPDATE Songs
SET PlayCounter = (SELECT COUNT(*) FROM Played WHERE Played.IDSong = Songs.ID GROUP BY Played.IDSong),
SET LastTimePlayed = (SELECT MAX(PlayDate) FROM Played WHERE Played.IDSong = Songs.ID GROUP BY Played.IDSong)
WHERE Songs.ID IN
(SELECT IDSong FROM Played, Songs WHERE Played.IDSong = Songs.ID GROUP BY IDSong
HAVING PlayCounter<>COUNT(*) OR CAST(LastTimePlayed AS TEXT)<>CAST(MAX(PlayDate) AS TEXT))
" : near "SET": syntax error (1,1)UPDATE Songs
SET PlayCounter = (SELECT COUNT(*) FROM Played WHERE Played.IDSong = Songs.ID GROUP BY Played.IDSong),
LastTimePlayed = (SELECT MAX(PlayDate) FROM Played WHERE Played.IDSong = Songs.ID GROUP BY Played.IDSong)
WHERE Songs.ID IN
(SELECT IDSong FROM Played, Songs WHERE Played.IDSong = Songs.ID GROUP BY IDSong
HAVING PlayCounter<>COUNT(*) OR CAST(LastTimePlayed AS TEXT)<>CAST(MAX(PlayDate) AS TEXT))SELECT SongTitle, Artist, Album, Genre FROM Songs WHERE SongTitle IN
(SELECT DISTINCT SongTitle FROM Songs WHERE Artist LIKE "Beatles")
ORDER BY SongTitle
Bex wrote:@Owyn,
I'm a bit uncertain on what you're trying to accomplish but if you need help, let me know.
Btw, don't use " around text fields, use ' insted. It's faster.
Also, LIKE isn't needed in your example since you don't have any wildcards (% or _) in Beatles, use = instead it's much faster.
@Mizery_Made
Great!
Users browsing this forum: No registered users and 10 guests