РЕДАКТИРОВАТЬ ---
SQL FIDDLE sqlfiddle.com/#!18/f08bd/4
Я не мог загрузить все данные в это как исчерпание лимита на SQL FIDDLE, но каким-то образом результаты там верны с небольшим количеством образцов данных, но в моей базе данных это удваивается как-то.
Я пытаюсь отобразить общее количество товаров, их вес и цену.
Результаты получены из 4 разных таблиц.
Когда я делаю это без соединения, тогда я получаю правильные значения, но когда я использую соединение, тогда я получаю двойные значения на всех выходах.
Без объединения я не могу этого добиться, так как все эти результаты должны быть в одной таблице.
Я пытался не использовать Join, а просто включать эти таблицы в 'FROM', но это приводило к ошибкам при преобразовании в числовые значения. Я также попробовал Союз, но не работал.
Когда я не использую соединение и не пытаюсь отобразить все значения, я получаю желаемый результат, но с пропущенными столбцами, которые я пропустил специально, чтобы проверить это.
SELECT PriceListTest.Description, COUNT(ItemCode) AS Quantity,
SUM(Weight) AS 'Weight', Item.Pieces, PriceListTest.Price,
CAST(SUM( PriceListTest.Price * Weight) as
DECIMAL(10,2)) as 'Unit Price', CAST(SUM(PriceListTest.Price * Weight) as
DECIMAL(10,2))
AS 'Nett Amount'
FROM StockItems
INNER JOIN PriceListTest ON
StockItems.ItemCode = PriceListTest.Description
INNER JOIN Item ON StockItems.ItemCode = Item.ShortCode
WHERE Barcode IN (SELECT DISTINCT Barcode FROM StockOuttbl
WHERE ContainedID = 'isr5063' AND Status ='' GROUP BY Barcode) AND
PriceListTest.CustomerID = (SELECT DISTINCT CustomerID From Customerstbl
WHERE CustomerID ='1')
GROUP BY PriceListTest.Description, Item.Pieces, PriceListTest.Price;
Статус в этом случае пуст, поэтому проблема не в этом
Я получаю эти значения:
Description Quantity Weight Pieces Price Unit Price Nett Amount
MAJ 52 20242 0 1.23 24897.66 24897.66
FLOCK 50 17206 0 1.23 21163.38 21163.38
Это вывод, который я ищу:
Description Quantity Weight Pieces Price Unit Price Nett Amount
MAJ 26 10121 0 1.23 12448.83 12448.83
FLOCK 25 8603 0 1.23 10581.69 10581.69
Когда я не использую PriceListTest в Join, я не получаю удвоения, но тогда это не совсем то, что я ищу.
Я получаю:
Description Quantity Weight Pieces
MAJ 26 10121 0
FLOCK 25 8603 0
РЕДАКТИРОВАТЬ-- Добавлены данные для таблиц
PriceListTest---
OID ShortCode Description CustomerID Price
7372 MAJ MAJ 1 1.23
7373 FLOCK FLOCK 1 1.23
StockItems---
TimeStamp DateStamp ItemCode Barcode ID Weight
104414357 20190701 MAJ 20190701104413935 7198 302
125350401 20190701 MAJ 20190701125349979 7220 360
125507063 20190703 MAJ 20190703125506641 7513 336
StockOutTbl---
ID AddedTimeStamp Quant Line UserID Weight Barcode Status Type StockoutTimeStamp StockoutUser TerminalStockOut TerminalAdded AddedDateStamp StockOutDateStamp ContainedID
41 115020205 NULL NULL NULL 336 20190703125506641 NULL 115020208 user 1 TC20 NULL 20190704 20190704 isr5063
Item Table ----
OID ShortCode ScreenCode Description AdminOid Kilos Pieces Inactive CategoryTitleStr BigBale
203 MAJ MAJ MAJ NULL 0 0 0 45 1
204 FLOCK FLOCK FLOCK NULL 0 0 0 45 1
Извините за плохое форматирование.
Буду признателен за любую помощь в этом. Заранее спасибо!