У меня есть следующие таблицы -SQL возвращения дубликатами
Timelogs
ID
UserID
JobID
TimeTaken
JobPhase
MaterialsForJob
ID
StockID
JobID
UserID
Quantity
Сток
ID
Name
CostPrice
Следующий запрос возвращает повторяющиеся строки, поскольку для задания задано более одного элемента запаса и более одной фазы (tl.Phase). Мой вопрос: как я могу вернуть только 1 строку с суммой? Добавляя SUM() в его нынешнем виде, возвращаемые значения будут неправильными.
SELECT
TimeTaken as 'HoursSold', s.CostPrice * mfj.Quantity as 'StockCost'
FROM
TimeLogs tl
LEFT JOIN
MaterialsForJob mfj ON mfj.JobID = tl.JobID AND mfj.UserID = tl.UserID
INNER JOIN
Stock s ON s.ID = mfj.StockID
WHERE
tl.UserID = 10000 AND
tl.DateEntry BETWEEN DATEADD(wk, DATEDIFF(wk, 0, '11/07/2013'), 0)
AND DATEADD(wk, DATEDIFF(wk, 0, '11/07/2013'), 6)
На данный момент, выше запрос возвращает -
Однако, он должен показать -
19570633502 - 30.00
Надеется, что это имеет смысл. Спасибо
Является ли '' mfj.UserID' 'отсутствующим в определениях таблиц? – acfrancis
Да, извините. Добавлено в MaterialForJob – dynamicuser