Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252

Запрос из БД с группировкой и суммированием

17.06.2014, 15:11. Показов 1105. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Прошу помочь.

Есть таблица с следующими полями:

1. ФИО(fio) 2. Тип_документа(doc_type) 3. количество(kolvo) 4. дата (dat)

Для чего служит: каждый день операторы забивают в таблицу отработанные документы. Это коло 14-20 различных наименований документов. Условно Документ1, Документ2...Документ20

Что нужно:

Сформировать запрос по которому выборка осуществляется следующим образом:

Выбрать из таблицы workout Фио, Тип_документа, Количество и дату. Сгруппировать по Типу документа, суммировать количество при условии что ФИО = Иванов А.А.

Также нужно чтобы полученные данные выводились в такой форме:

Касиир ФИО за преиод с по отработал:

Документ 1 - 20
Документ 2 - 40
...
Документ 20 - 11

Всего: 530


Код запроса (составлял в Access поэтому не уверен что он полностью соответствует php):
PHP
1
2
3
4
SELECT workout.fio, Sum(workout.kolvo) AS [Sum-total], workout.doc_type, workout.dat
FROM workout
GROUP BY workout.doc_type, workout.fio
HAVING (((workout.fio)="'.$name.'") AND ((workout.dat) Between [$date1] And [$date2]));
Прошу помочь хотя бы с запросом. Заранее спасибо.

Добавлено через 56 минут
Вот то что есть сейчас:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<meta http-equiv="Content-type" content="text/html;charset=utf8"> 
 
<?php
include_once("config.php");
checkLoggedIn("yes");
 
if (isset($_SESSION["login"]) && $_SESSION["login"] != "")
{
    //echo "вы залогинились как: ".$_SESSION["login"]."\n <br>";
    $prname = $_SESSION["login"];
    $getname = "SELECT fio, groupa FROM users WHERE login='".$prname."'";
    //echo "строка запроса: $getname \n <br>";
    $printname = mysql_query($getname);
     $numrows = mysql_num_rows($printname) || die(mysql_error());
    if($numrows > 0) {
        $names = mysql_fetch_array($printname);
        $name = $names[0];
        $gr = $names[1];
    } else {    
    echo "че-т не то\n <br>";
}
}
//print ("<a href=\"logout.php"."\">EXIT</a>");
 
$date1 = $_POST['1_dat'];
$date2 = $_POST['2_dat'];
 
print "<br><center>Товарным кассиром <b>$name</b> за период с <b>$date1</b> по <b>$date2</b> отработано:<br><br>";
 
$reqst = "SELECT fio, doc_type, Sum(kolvo) AS kl, dat
FROM workout
GROUP by doc_type
WHERE fio=$name AND dat BETWEEN $date1 and $date2";
$result = mysql_query($reqst);
$resultat = mysql_num_rows($result) || die(mysql_error());
if ($resultat > 0) {
$alle = mysql_fetch_array($result);
 
do
{
echo "<table border=0 width=300><tr>
<td width=200>".$alle['doc_type']."</td><td>".$alle['kl']."</td></tr></table> ";
}
 
while($alle = mysql_fetch_array($result));
}
 
?>
Однако при таком коде выпадает вот такая ошибка:

HTML5
1
2
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\ws\OpenServer\domains\10.37.45.16\workout_stat_view.php on line 35
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE fio=Савельева Е.В. AND dat BETWEEN 17.06.2014 and 17.06.2014' at line 4
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2014, 15:11
Ответы с готовыми решениями:

Запрос с группировкой и суммированием
Здравствуйте! Есть родительская таблица приход: idпри, наименование, количество. Есть дочерняя таблица расход: idрас, idпри,...

Запрос с суммированием
Доброго времени суток! имеется БД допустим такой структуры: фамилия|марка_машины| расход | _______________________________________ ...

Запрос с суммированием
Всем доброго времени суток. Для SQL Compact нет своего раздела, поэтому обращаюсь в раздел старшего брата. Есть запрос в базу ...

3
 Аватар для V@D!k
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
17.06.2014, 16:20
Цитата Сообщение от Panzermensch Посмотреть сообщение
'WHERE fio=Савельева Е.В. AND dat BETWEEN 17.06.2014 and 17.06.2014' at l
ну во первых здесь фамилию нужно взять в кавычки
PHP
1
2
3
4
$reqst = "SELECT fio, doc_type, Sum(kolvo) AS kl, dat
FROM workout
GROUP by doc_type
WHERE fio='$name' AND dat BETWEEN $date1 and $date2";
и если это не прокатит смотрите на даты, не знаю как они у вас хранятся в базе
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
18.06.2014, 07:12  [ТС]
все данные, и даты тоже, хранятся как простой текст, так проще. Проблема в том, что обычную выборку делает без пролем, но как только добавляется условие WHERE - начинается((
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
18.06.2014, 09:41
Расположение кляуз в SQL-предложении обычно примерно соответствует порядку их выполнения. Так вот, поскольку WHERE выполняется раньше, чем GROUP BY (сначала выполняется отбор строк, а только потом группировка), то и идти WHERE должно до GROUP BY.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2014, 09:41
Помогаю со студенческими работами здесь

Запрос с суммированием
Есть таблица, в ней пять столбцов: дата, номер приходного документа, цена, сумма и количество квадратных метров. и скрытый столбец с...

Запрос с суммированием по группам
Доброго времини суток. Детская задача( но проблемы) есть запрос ВЫБРАТЬ ВыпускПродукцииУслугБухгалтерскийУчет.Продукция, ...

SQL запрос группировка с суммированием
Доброе, время суток Вот интересует возможно ли только средствами SQL запроса отобразить в таблице следующую выборку было: ...

Перекрестный запрос с суммированием в 1 строку
Привет, помогите создать перекрестный запрос с суммированием в 1 строку. Код сотрудника должен стать столбцом, а в строке количество...

Запрос с объединением строк и суммированием по столбцу
Здравствуйте! Имеется таблица activity с полями (для удобства сразу заполню значениями): id|id_sender|id_task|date|time|comment ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru