2014-12-02 4 views
1

сегодня мой клиент сделал мне запрос: сообщите ему об изменениях между двумя таблицами нашей БД с ежедневными отчетами. На самом деле, я думаю, что это лучший (и умный) способ сделать это.Запрос клиента: ежедневный отчет об изменениях между двумя таблицами DB

  • Процедура SQL?
  • HTML-страница?

Я не уверен, как это сделать. Как я могу отметить изменения между двумя таблицами? я постараюсь объяснить лучше с примером:

YESTERDAY TABLE: 

+----+----------+----------+-----------+----------------+ 
| ID | HOSTNAME | IP | STATUS |  NOTE  | 
+----+----------+----------+-----------+----------------+ 
| 01 | TEST_HST |127.0.0.1 | ACTIVE |Lorem Ipsumm | 
+----+----------+----------+-----------+----------------+ 
| 02 | TST2_HST |10.6.10.1 | DOWN |Lorem Ipsumm | 
+----+----------+----------+-----------+----------------+ 
| 03 | TST3_HST |10.6.10.2 | ACTIVE |Lorem Ipsumm | 
+----+----------+----------+-----------+----------------+ 

TODAY TABLE 

+----+----------+----------+-----------+--------------+-----------------------------------+ 
| ID | HOSTNAME | IP | STATUS |  NOTE  |    TODAY_NOTES   | 
+----+----------+----------+-----------+--------------+-----------------------------------+ 
| 01 | TEST_HST |127.0.0.1 | DOWN |Lorem Ipsumm |STATUS: DOWN      | 
+----+----------+----------+-----------+--------------+-----------------------------------+ 
| 02 | TST2_HST |10.6.10.1 | ACTIVE |Bla bla bla |STATUS: ACTIVE, NOTE: Bla bla bla | 
+----+----------+----------+-----------+--------------+-----------------------------------+ 
| 03 | TST3_HST |10.6.10.2 | DOWN |Bla bla BLA |STATUS: DOWN, NOTE; Bla bla BLA | 
+----+----------+----------+-----------+--------------+-----------------------------------+ 

Я хочу сделать доклад (в виде таблицы) к моему клиенту, обозначающие различия между этими двумя таблицами. Каков наилучший способ, на ваш взгляд?

Спасибо всем за поддержку.

ответ

0

Что-то вроде этого должно дать вам старые и новые значения, как вы показываете эти данные, зависит от вас.

SELECT yt.*, tt.Status AS NewStatus, tt.Note AS NewNote 
FROM YesterdayTable yt 
INNER JOIN TodaysTable tt 
ON yt.ID = tt.ID 
WHERE vt.Status <> tt.Status OR vt.Note <> tt.Note 

Это даст вам:

+----+----------+----------+-----------+----------------+ 
| ID | HOSTNAME | IP | STATUS |  NOTE  |NewStatus | NewNote 
+----+----------+----------+-----------+----------------+ 
| 01 | TEST_HST |127.0.0.1 | ACTIVE |Lorem Ipsumm | DOWN  | Lorem Ipsum 
+----+----------+----------+-----------+----------------+ 
| 02 | TST2_HST |10.6.10.1 | DOWN |Lorem Ipsumm | ACTIVE | Bla bla bla 
+----+----------+----------+-----------+----------------+ 
| 03 | TST3_HST |10.6.10.2 | ACTIVE |Lorem Ipsumm | DOWN  | Bla bla bla 
+----+----------+----------+-----------+----------------+ 
+0

Спасибо за ваш ответ, я должен дать показания об изменениях моего клиента с (возможно) столбец «Сегодня Notes» с найденными изменениями или сдачи в «смелые» поля изменились. Есть идеи? – Lc0rE

+0

@l_core Это действительно похоже на новый вопрос. Оба запроса БД и стилизация данных не должны быть в одном и том же вопросе/ответе. Вы можете добавить источник данных sql в лист excel, запустить этот запрос и форматировать последние два столбца как полужирный, как быстрый образец. Вы можете вернуть эти данные на страницу html как json, использовать плагин таблицы и добавить стили CSS в последние два столбца. Зависит от требования и того, как/где вы хотите его отображать. – artm

+0

Еще раз спасибо за ответ. Я не думаю об этом как о двух отдельных вопросах. Я имею в виду, мне нужен «способ» сделать такой отчет, а не способ отформатировать результаты. Мне нужно представить доказательства измененных данных, добавив «подробную» заметку к моей таблице или сделав жирным шрифтом новые данные. Еще раз спасибо за сотрудничество. – Lc0rE

Смежные вопросы