У меня есть SQL-запрос, в котором я пытаюсь добавить Date для вывода в столбец, но он дает мне следующую ошибку
тип столбцов результата запросов в UNION не делаютматч. Несовпадение с номером пункта выбора 3.
Кто-нибудь может пролить свет на то, что может быть не так с моим кодом в соответствии с двумя примерами ниже?
Это код, который яя пытаюсь обновить
SELECT DIH_DBTNO as Debtor, JT_DES as Description, DIH_DATE as Date,
CASE WHEN JT_TYPE=73 THEN JT_ITMNO
WHEN JT_TYPE=76 THEN 'LABOUR'
ELSE 'WORK SHEET' END as Item,
SUM(JT_AQTYHOURS) AS 'Qty',
SUM(JT_ORDERTOTAL) AS 'Sales',
SUM(JT_ACOST*JT_AQTYHOURS) AS 'Cost'
FROM Debtors_Invoice_Header_File, Job_Master_File, Job_Transaction_File
WHERE JOB_NO = DIH_JOBNO
AND JOB_UNIQUE = JT_LINK
AND JT_INVOICED > 0
AND JT_TYPE <>84
AND DIH_DBTNO like ?
AND DIH_DATE >=?
AND DIH_DATE <=?
GROUP BY DIH_DBTNO, JT_DES, DIH_DATE
UNION ALL
SELECT DIH_DBTNO as Debtor, DIL_ITMNO as Item, DIL_DES as Description, DIH_DATE as Date,
SUM(DIL_QTYDEL) AS 'Qty',
SUM(DIL_ORDERTOTAL) AS 'Sales',
SUM(DIL_COST*DIL_QTYDEL) AS 'Cost'
FROM Debtors_Invoice_Header_File, Debtors_Invoice_Line_File
WHERE DIH_LINK = DIL_DIHLINK
AND DIL_TRANTYPE = 73
AND DIH_DBTNO like ?
AND DIH_DATE >=?
AND DIH_DATE <=?
GROUP BY DIH_DBTNO, DIL_ITMNO, DIL_DES, DIH_DATE
Следующий код работает, но он не выводит дату в столбцы.
SELECT DIH_DBTNO as Debtor, JT_DES as Description,
CASE WHEN JT_TYPE=73 THEN JT_ITMNO
WHEN JT_TYPE=76 THEN 'LABOUR'
ELSE 'WORK SHEET' END as Item,
SUM(JT_AQTYHOURS) AS 'Qty',
SUM(JT_ORDERTOTAL) AS 'Sales',
SUM(JT_ACOST*JT_AQTYHOURS) AS 'Cost'
FROM Debtors_Invoice_Header_File, Job_Master_File, Job_Transaction_File
WHERE JOB_NO = DIH_JOBNO
AND JOB_UNIQUE = JT_LINK
AND JT_INVOICED > 0
AND JT_TYPE <>84
AND DIH_DBTNO like ?
AND DIH_DATE >=?
AND DIH_DATE <=?
GROUP BY DIH_DBTNO, JT_DES
UNION ALL
SELECT DIH_DBTNO as Debtor, DIL_ITMNO as Item, DIL_DES as Description,
SUM(DIL_QTYDEL) AS 'Qty',
SUM(DIL_ORDERTOTAL) AS 'Sales',
SUM(DIL_COST*DIL_QTYDEL) AS 'Cost'
FROM Debtors_Invoice_Header_File, Debtors_Invoice_Line_File
WHERE DIH_LINK = DIL_DIHLINK
AND DIL_TRANTYPE = 73
AND DIH_DBTNO like ?
AND DIH_DATE >=?
AND DIH_DATE <=?
GROUP BY DIH_DBTNO, DIL_ITMNO, DIL_DES
Любые указатели на то, где я могу ошибаться, будутоценил, спасибо заранее