Я использовал рекурсивный CTE для создания диапазона лет, так что «нулевой» год не будет опущен
declare @YEAR1 as date = '20110101';
declare @YEAR2 as date = '20190101';
WITH YEARS AS (SELECT @YEAR1 y
UNION ALL
SELECT dateadd(year,1,y) FROM YEARS WHERE y < @YEAR2)
SELECT YEARS.y,count(0) YearStartActiveOrders FROM YourTable
CROSS JOIN YEARS
WHERE YEARS.y BETWEEN CAST(orderdate as date)
AND CAST(DATEADD(mm, BindingTime, OrderDate) as date)
GROUP BY Years.y
Более короткий и чистый способ сделать это - использовать одну кнопку для проверки и получения обоих входных значений, а затем присвоить полученные значения вашему массиву firsttext
следующим образом:
/* JavaScript */
var btn = document.querySelector("button");
var firsttext = [];
btn.addEventListener("click", function(){
var player1 = document.getElementById("firsttext");
var player2 = document.getElementById("secondtext");
if (player1.value != "" && player2.value != "") {
firsttext.push(player1.value);
firsttext.push(player2.value);
alert(firsttext);
return firsttext;
} else {
alert("Enter players' names");
}
});
<!-- HTML -->
<section id="first_section" class="first_section">
<input type="text" placeholder="Nom du premier joueur" id="firsttext"><br>
</section>
<p></p>
<section id="second_section" class="second_section">
<input type="text" placeholder="Nom du deuxième joueur" id="secondtext"><br>
</section>
<section id="button">
<button type="button" id="second_button">Suivant ></button>
</section>
let firstTextEl = document.querySelector("#firsttext"),
firstValue = firstTextEl.value,
secondTextEl = document.querySelector("#secondtext"),
secondValue = secondTextEl.value;
querySelector получает сам вход, затем вы просто используете .value (), чтобы получить значение этого элемента ввода.