Ich versuche, einen Parameter aus einem Excel-Arbeitsblatt mehrere Male in einer SQL-Abfrage zu verwenden, und ich finde keine einfachen Lösungen, während ich denke, es sollte nicht t das so kompliziert sein. Ich arbeite auf dem SQL-Server.Verwenden Sie Parameter mehrmals in SQL-Abfrage in einer Excel-Tabelle
Lassen Sie mich erklären. Ich habe eine Tabelle mit dem Namen DONNEES_CNA
, die als Spalten eine Startzeit (STARTIME
), eine Endzeit (ENDTIME
) und eine Tonnage (TONNAGE
) hat. Es gibt die Tonnage (in Tonnen) an, die zwischen Startzeit und Endzeit auf ein Förderband gelangte.
Sagen wir, ich habe jede Stunde Daten. Startzeiten sind wie '2016-03-01 10:00:00'
und Endzeiten sagen wir '2016-03-01 10:59:59'
.
Wenn ich also die Tonnage zwischen zwei Daten/Stunden wollen, würde meine SQL-Abfrage wie:
DECLARE @DEBUT DATETIME, @FIN DATETIME
SET @DEBUT = '2016-03-01 09:00:00'
SET @FIN = '2016-03-01 12:30:00'
SELECT CASE WHEN STARTTIME >= @DEBUT AND ENDTIME <= @FIN THEN TONNAGE
WHEN STARTTIME >= @DEBUT AND ENDTIME > @FIN THEN (TONNAGE)*DATEDIFF(SECOND, STARTTIME, @FIN)/DATEDIFF(SECOND, STARTTIME, ENDTIME)
WHEN STARTTIME < @DEBUT AND ENDTIME <= @FIN THEN (TONNAGE)*DATEDIFF(SECOND, @DEBUT, ENDTIME)/DATEDIFF(SECOND, STARTTIME, ENDTIME)
WHEN STARTTIME < @DEBUT AND ENDTIME > @FIN THEN (TONNAGE)*DATEDIFF(SECOND, @DEBUT, @FIN)/DATEDIFF(SECOND, STARTTIME, ENDTIME)
END
AS TONNAGE
FROM DONNEES_CNA
Es könnte nicht optimiert werden, von einer Art und Weise größere Abfrage extrahiert und nur eine ist Beispiel unter vielen, die ich habe; Die Idee ist nur, dass ich oft nur zwei Parameter verwende.
Es funktioniert gut auf SQL Server, auf SSRS, aber ich kann es nicht auf Excel. Ich möchte nur @DEBUT
und @FIN
direkt aus meiner Tabelle haben.
Ich versuchte SET @DEBUT = ?
, idem für @FIN
, die nicht funktioniert. Ich setze oben auf meine Abfrage SET NOCOUNT ON
, funktioniert auch nicht. Der erste Fehler ist etwas wie (Entschuldigung mein Excel ist in Französisch): "Parameternummer ist nicht gültig".
folgte ich diese Frage beantworten, die nicht weder funktioniert (oder ich tue es falsch?) : How to add parameters to an external data query in Excel which can't be displayed graphically?
Ich fand dies, aber es würde zu lange dauern mit jedem Parameter zu behandeln: how to pass parameters to query in SQL (Excel)
Ist die einzige Lösung ?
jedes Mal, wenn ich einen Parameter habe und jeden Parameter in Excel definieren? Meine Abfrage kann ziemlich lang sein, und diese Parameter können einige hundert Mal erscheinen ...
Ich bin nicht widerwillig, VBA zu verwenden, solange es eine Lösung gibt, die mich nicht hundert Mal auf dasselbe klicken lässt A2 und B2 Zellen, wo mein Parameter wäre ..
Wenn es bereits eine Antwort auf diesen Fall gibt, bitte entschuldigen Sie, ich habe seit langer Zeit ohne Erfolg gesucht.
Danke für Ihre Hilfe!