У вас есть столбец InvoiceID
в таблице Invoices
, а также в таблице InvoiceLineItems
. Механизм выполнения запроса не знает, какой из них вы хотите вернуть.
Добавление псевдонима таблицы поможет:
SELECT V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
FROM Vendors V
JOIN Invoices I ON (...)
JOIN InvoiceLineItems IL ON (...)
WHERE ...
ORDER BY V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
Изменение:
mkdir -p $deploydir
-
mkdir -p "$deployDir"
Как и большинство оболочек Unix (возможно, даже все), Bourne (Again) Shell (sh / bash) чувствительна к регистру. Переменная dir называется deployDir
(в смешанном регистре) везде, кроме команды mkdir
, где она называется deploydir
(все в нижнем регистре).Поскольку deploydir
(все строчные буквы) считается отдельной переменной из deployDir
(смешанный регистр) и deplydir
(все строчные буквы) никогда не имеет присвоенного значения , значение deploydir
(все строчные буквы) - это пустая строка ("").
Без кавычек ( mkdir $ deploydir
) строка фактически становится mkdir
(просто команда без необходимого операнда), поэтому возникает ошибка mkdir: пропущенный операнд
.
С кавычками ( mkdir "$ deploydir"
) строка фактически становится mkdir ""
(команда для создания каталога с недопустимым именем каталога из пустой строки), таким образом, ошибка mkdir: невозможно создать каталог
'.
Использование формы с кавычками ( mkdir "$ deployDir"
) рекомендуется в случае, если имя целевого каталога содержит пробелы.
Изменить:
mkdir -p $deploydir
на
mkdir -p "$deploydir"
По очевидным причинам в Windows нельзя ставить двоеточия в именах файлов.