Данные по счетам хранятся в data43, при этом поле компании - f839.
Компании - в data42 по полю id.
Логично было бы, что эти поля совпадают, однако они разные (интервал значений f839 - 14-19, id- 50-56)
При этом в отчете по компаниям, где используется эта связь суммы выводятся. а названия нет.
НО - в таблице счета названия все корректны.
Где то еще таблица связей?
1
Вопрос по связям таблиц
Автор slavem, 29 апр. 2010 20:57
Сообщений в теме: 7
#1
Отправлено 29 Апрель 2010 - 20:57
#2
Отправлено 29 Апрель 2010 - 21:28
slavem (29.4.2010, 20:57) писал:
Данные по счетам хранятся в data43, при этом поле компании - f839.
Компании - в data42 по полю id.
Логично было бы, что эти поля совпадают, однако они разные (интервал значений f839 - 14-19, id- 50-56)
При этом в отчете по компаниям, где используется эта связь суммы выводятся. а названия нет.
НО - в таблице счета названия все корректны.
Где то еще таблица связей?
Компании - в data42 по полю id.
Логично было бы, что эти поля совпадают, однако они разные (интервал значений f839 - 14-19, id- 50-56)
При этом в отчете по компаниям, где используется эта связь суммы выводятся. а названия нет.
НО - в таблице счета названия все корректны.
Где то еще таблица связей?
Нашел!!!!!!!!!!
В отчете сначала сделал запрос по полю f774 из data71, а потом по этой записи из data 42 нашел название
А еще вчера не знал что такое php sql smarty !!!!!!!!!!
#3
Отправлено 30 Апрель 2010 - 08:30
Поле f839 из таблицы Счета является полем связи с таблицей Реквизиты, а не Контрагенты. Это легко можно увидеть в свойствах поля.
#4
Отправлено 30 Апрель 2010 - 10:07
А почему тогда ссылаетесь в отчете по компаниям на реквизиты
#6
Отправлено 30 Апрель 2010 - 11:35
В отчете "Доход по компаниям" столбец "Компания" заполняется из таблицы 42, по полю f839 из 43 таблицы, но значения 43.f839 и 42.id не совпадают!
#7
Отправлено 30 Апрель 2010 - 11:48
Совершенно верно, похоже ошибка кода отчета. Будем исправлять.
#8
Отправлено 30 Апрель 2010 - 15:00
Исправили. Вам необходимо заменить код подготовки данных в отчете на следующий:
$date1 = $_REQUEST['date1']?$_REQUEST['date1']:date("d.m.Y"); $date2 = $_REQUEST['date2']?$_REQUEST['date2']:date("d.m.Y"); $date3 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-30,date("Y"))); $date4 = date("d.m.Y"); $date5 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-60,date("Y"))); $date6 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-31,date("Y"))); if ($_REQUEST['_type']) { unset($_SESSION[$ses_id]['on_filter']); if ($_REQUEST['_type']=="Месяц") { $_SESSION[$ses_id]['on_filter'][436] = 1; $_SESSION[$ses_id]['term_filter'][436] = "period"; $_SESSION[$ses_id]['value_filter'][436] = $date3." 00:00"; $_SESSION[$ses_id]['value_filter2'][436] = $date4." 23:59"; $_SESSION[$ses_id]['on_filter'][839] = 1; $_SESSION[$ses_id]['term_filter'][839] = "="; $_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company']; } elseif ($_REQUEST['_type']=="Месяц2") { $_SESSION[$ses_id]['on_filter'][436] = 1; $_SESSION[$ses_id]['term_filter'][436] = "period"; $_SESSION[$ses_id]['value_filter'][436] = $date5." 00:00"; $_SESSION[$ses_id]['value_filter2'][436] = $date6." 23:59"; $_SESSION[$ses_id]['on_filter'][839] = 1; $_SESSION[$ses_id]['term_filter'][839] = "="; $_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company']; } elseif ($_REQUEST['_type']=="Все") { $_SESSION[$ses_id]['on_filter'][839] = 1; $_SESSION[$ses_id]['term_filter'][839] = "="; $_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company']; } else { $_SESSION[$ses_id]['on_filter'][436] = 1; $_SESSION[$ses_id]['term_filter'][436] = "period"; $_SESSION[$ses_id]['value_filter'][436] = $date1." 00:00"; $_SESSION[$ses_id]['value_filter2'][436] = $date2." 23:59"; $_SESSION[$ses_id]['on_filter'][839] = 1; $_SESSION[$ses_id]['term_filter'][839] = "="; $_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company']; } header("Location: ".$config["site_root"]."/fields.php?table=43"); } $sqlQuery = "SELECT * FROM ".DATA_TABLE."43 GROUP BY f839"; $result = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery); while ($row = mysql_fetch_array($result)) { $data['company'] = $row['f839']; $sqlQuery = "SELECT * FROM ".DATA_TABLE."71 WHERE id='".$data['company']."'"; $result2 = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery); $row2 = mysql_fetch_array($result2); $sqlQuery = "SELECT * FROM ".DATA_TABLE."42 WHERE id='".$row2['f774']."'"; $result2 = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery); $row2 = mysql_fetch_array($result2); $data['company_name'] = $row2['f435']; $sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f436>='".form_eng_time($date3." 00:00:00")."' AND f436<='".form_eng_time($date4." 23:59:59")."' AND f839='".$data['company']."'"; $result2 = mysql_query($sqlQuery); $row2 = mysql_fetch_array($result2); $data['month'] = $row2['cnt']; $data['smonth'] = number_format($row2['summa'], 2, ',', ''); $sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f436>='".form_eng_time($date5." 00:00:00")."' AND f436<='".form_eng_time($date6." 23:59:59")."' AND f839='".$data['company']."'"; $result2 = mysql_query($sqlQuery); $row2 = mysql_fetch_array($result2); $data['month2'] = $row2['cnt']; $data['smonth2'] = number_format($row2['summa'], 2, ',', ''); $sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f839='".$data['company']."'"; $result2 = mysql_query($sqlQuery); $row2 = mysql_fetch_array($result2); $data['all'] = $row2['cnt']; $data['sall'] = number_format($row2['summa'], 2, ',', ''); $sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f436>='".form_eng_time($date1." 00:00:00")."' AND f436<='".form_eng_time($date2." 23:59:59")."' AND f839='".$data['company']."'"; $result2 = mysql_query($sqlQuery); $row2 = mysql_fetch_array($result2); $data['choice'] = $row2['cnt']; $data['schoice'] = number_format($row2['summa'], 2, ',', ''); $lines[] = $data; } $smarty->assign("date1", $date1); $smarty->assign("date2", $date2); $smarty->assign("lines", $lines);
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных