1. SELECT Перевозки.ДатаОтгрузки, Перевозки.НомерВагона, Перевозки.КодГруза, Перевозки.Стоимость, Перевозки.ДатаВозвратаВагона FROM Перевозки WHERE (((Month([ДатаОтгрузки]))>=1 And (Month([ДатаОтгрузки]))<7) AND ((Year([ДатаОтгрузки]))=Year(Date())-1)) ORDER BY Перевозки.ДатаОтгрузки, Перевозки.НомерВагона;
2. SELECT DISTINCTROW НаименованиеГруза.Наименование, Avg(Перевозки.Стоимость) AS [Avg-Стоимость], Year([Перевозки]![ДатаОтгрузки]) AS [Год отгрузки] FROM НаименованиеГруза INNER JOIN Перевозки ON НаименованиеГруза.Код = Перевозки.КодГруза GROUP BY НаименованиеГруза.Наименование, Year([Перевозки]![ДатаОтгрузки]), Перевозки.КодГруза;
3. не знаю как срок считать
4. SELECT DISTINCTROW Sum(Перевозки.Стоимость) AS [ОбщаяСтоимость перевозок за период] FROM Перевозки HAVING (((Перевозки.ДатаОтгрузки) Between [:d1] And [:d2]));
В матрице 42 элемента. Заполним её случайными значениями в диапазоне от x/2 до 2*y, тогда в среднем половина значений попадет в заданный диапазон.
const m=6; n=7; var a:array[1..m,1..n] of integer; i,j,k,x,y,x1,y1,s:integer; begin Randomize; Write('Введите через пробел x и y: '); Read(x,y); if y<x then begin s:=x; x:=y; y:=s end; Writeln('Исходный массив'); if x<0 then x1:=2*x else x1:=x div 2; if y<0 then y1:=y div 2 else y1:=2*y; k:=y1-x1+1; s:=0; for i := 1 to m do begin for j := 1 to n do begin a[i,j]:=Random(k)+x1; Write(a[i,j]:4); if (a[i,j]>=x) and (a[i,j]<=y) then s:=s+a[i,j] end; Writeln end; for j:=1 to n do a[1,j]:=s; Writeln('Результирующая матрица'); for i := 1 to m do begin for j := 1 to n do Write(a[i,j]:4); Writeln end end.
1.
SELECT Перевозки.ДатаОтгрузки, Перевозки.НомерВагона, Перевозки.КодГруза, Перевозки.Стоимость, Перевозки.ДатаВозвратаВагона
FROM Перевозки
WHERE (((Month([ДатаОтгрузки]))>=1 And (Month([ДатаОтгрузки]))<7) AND ((Year([ДатаОтгрузки]))=Year(Date())-1))
ORDER BY Перевозки.ДатаОтгрузки, Перевозки.НомерВагона;
2.
SELECT DISTINCTROW НаименованиеГруза.Наименование, Avg(Перевозки.Стоимость) AS [Avg-Стоимость], Year([Перевозки]![ДатаОтгрузки]) AS [Год отгрузки]
FROM НаименованиеГруза INNER JOIN Перевозки ON НаименованиеГруза.Код = Перевозки.КодГруза
GROUP BY НаименованиеГруза.Наименование, Year([Перевозки]![ДатаОтгрузки]), Перевозки.КодГруза;
3. не знаю как срок считать
4.
SELECT DISTINCTROW Sum(Перевозки.Стоимость) AS [ОбщаяСтоимость перевозок за период]
FROM Перевозки
HAVING (((Перевозки.ДатаОтгрузки) Between [:d1] And [:d2]));
const
m=6;
n=7;
var
a:array[1..m,1..n] of integer;
i,j,k,x,y,x1,y1,s:integer;
begin
Randomize;
Write('Введите через пробел x и y: '); Read(x,y);
if y<x then begin s:=x; x:=y; y:=s end;
Writeln('Исходный массив');
if x<0 then x1:=2*x else x1:=x div 2;
if y<0 then y1:=y div 2 else y1:=2*y;
k:=y1-x1+1; s:=0;
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i,j]:=Random(k)+x1;
Write(a[i,j]:4);
if (a[i,j]>=x) and (a[i,j]<=y) then s:=s+a[i,j]
end;
Writeln
end;
for j:=1 to n do a[1,j]:=s;
Writeln('Результирующая матрица');
for i := 1 to m do
begin
for j := 1 to n do Write(a[i,j]:4);
Writeln
end
end.
Тестовое решение:
Введите через пробел x и y: -5 10
Исходный массив
0 11 -6 15 -8 -2 -6
9 0 6 1 11 -2 -1
2 9 13 -1 6 0 9
6 1 -5 8 -3 0 -5
8 4 -8 7 -6 6 11
18 -1 15 -8 -9 -9 20
Результирующая матрица
62 62 62 62 62 62 62
9 0 6 1 11 -2 -1
2 9 13 -1 6 0 9
6 1 -5 8 -3 0 -5
8 4 -8 7 -6 6 11
18 -1 15 -8 -9 -9 20