Ich habe eine SQL-Abfrage-Aufgabe, die ich in C# oder linqpad OK tun kann, aber es wäre in SQL lieber Standard-Reporting-Tools können es tun.[My] SQL Query Syntax, die foreach Verarbeitung erfordert
End DB ist ein Bugzilla unter MySQL
Das Problem ist ich Schleife durch die bug_activity müssen für bestimmte Änderungen suchen, um die übergeordneten Datensatz „gültig“ zu prüfen, wie? z.B. Pseudo-Logik wie
if bug_status went to IN BACKLOG
then bug_status went to ASSIGNED
and this happened 2016-03-01 to 206-03-31
then consider valid record
Ich bin nicht sicher, wie dies zu tun, wie Web-Beispiele nur DECLARE und Schleifen zeigen aber, wie eine Schleife paßt in den „wählen Sie aus, in dem“ Code.
set @BugID = 64252;
select
bugs_activity.bug_id,
-- profiles.realname,
-- profiles.login_name,
bugs_activity.bug_when,
fielddefs.name,
bugs_activity.added
-- bugs_activity.removed
from
bugs_activity,
profiles,
fielddefs
-- Real world 'Where xx' will have more logic and result in a number of bugzilla records
-- Each bugzilla record has its own 'bugs_activity'
-- Logic needs to look at each buzilla records historyto filter results
-- Want to end up with a filtered record set and a total number of records
Where bug_id = @BugID AND bugs_activity.who = profiles.userid AND bugs_activity.fieldid = fielddefs.id
Beispiel bug_activity
bug_id bug_when name added
64252 26/01/2016 6:51:30 AM status_whiteboard ID:103138574
64252 26/01/2016 6:52:10 AM cc [email protected]
64252 28/01/2016 9:49:10 AM bug_status IN BACKLOG
64252 28/01/2016 9:49:10 AM cf_escalation_notes Effort: 2
Reproduced by support
64252 28/01/2016 9:49:10 AM assigned_to [email protected]
64252 2/05/2016 4:33:05 PM bug_status ASSIGNED
Können Sie Ihre Anforderungen erklären, ein bisschen mehr? Sie können es wahrscheinlich ohne eine Schleife tun. SQL ist basisbasiert, Looping vereitelt den Zweck. – HoneyBadger