Я намагаюся зробити деяку звітність для обліку часу працівників.
У нас є дві таблиці спеціально для цього питання. Співробітники перераховані в Members
таблиці, і кожен день вони вносять часові записи роботи, яку вони виконували, і зберігаються в Time_Entry
таблиці.
Приклад налаштування за допомогою SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
В кінцевому підсумку я буду за це таблиця , яка показує все , що Members
в списку стовпців , а потім буде показувати свій годинник сум на дату запитані в інших стовпцях.
Проблема, здається, полягає в тому, що якщо у Time_Entry
таблиці немає рядка для конкретного члена, тепер для нього є рядок. Я спробував декілька різних типів приєднання (лівий, правий, внутрішній, зовнішній, повний зовнішній тощо), але жоден, здається, не дає мені того, що я хочу, що було б (на основі останнього прикладу в SQL Fiddle):
/*** Desired End Result ***/
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
ADavis | 0 | 11-10-2013 | 0 | 0
BTronton | 0 | 11-10-2013 | 0 | 0
CJones | 0 | 11-10-2013 | 0 | 0
DSmith | 0 | 11-10-2013 | 0 | 0
EGirsch | 1 | 11-10-2013 | 0.92 | 1
FRowden | 0 | 11-10-2013 | 0 | 0
Що я зараз отримую, коли запитую конкретну дату 11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
Це правильно, виходячи з одного рядка Time Entry, який датований 11-10-2013 для EGirsch, але мені потрібно побачити нулі для інших членів, щоб отримати звіти та, зрештою, веб-панель / звіт для цієї інформації.
Це моє перше питання, і, поки я шукав запити на приєднання, і т. Д. Я, чесно кажучи, не впевнений, як ця функція може бути названа, тому я сподіваюся, що це не дублікат і допоможе іншим намагатися знайти рішення для подібні проблеми.
WHERE
іAND
. Я використовував псевдоніми спочатку, але sqlfiddle не сподобалось, тому я просто перейшов у повний формат. Дякуємо також за інші поради SQL. Ви б рекомендуватиISNULL
абоCOALESCE
зробити дані 0 замістьNULL
? Знову дякую!