Я день и ночь искал синтаксис подзапросов и, кажется, до сих пор в неведении относительно них. Вдобавок ко всему, мне может потребоваться более сложный подзапрос для выполнения этого. Я постараюсь объяснить это в меру своих возможностей.
Мы используем базу данных Access для нашей системы продажи билетов (я знаю), и она была создана еще в 1997 году. В качестве бэкэнда используется SQL Server 2005. В настоящее время я пишу сценарий на PHP для отправки электронной почты клиентам, когда время их блока, которое они купили заранее, упало ниже нуля. Имея небольшой опыт программирования с SQL и ODBC, я смог создать пару запросов, которые работают на данный момент. Мне нужно добавить больше данных к этим запросам, но я почти исчерпал свои возможности.
Этот запрос привлечет всех отдельных клиентов, у которых есть предоплаченное время с нами (время блокировки / код события 201).
$query1 = "SELECT [Customer Name], MAX([Incident #])
FROM [Incidents]
WHERE [Event Code] = 201
GROUP BY [Customer Name]
ORDER BY [Customer Name] ASC";
Поскольку у меня ограниченные знания о подзапросах, у меня есть другой запрос, который должен определить, существует ли более новый «Инцидент №», имеющий «Код события» 203. Если да, не включайте их.
while( odbc_fetch_row( $query1 ))
{
$query2 = "SELECT [Customer Name]
FROM [Incidents]
WHERE [Customer Name] = '$customer_name'
AND [Incident #] > $incident_num
AND [Event Code] = 203";
if( !odbc_fetch_row( $query2 )) {
//list customers
}
}
Эти запросы работают как шарм, но я хотел бы объединить их в один, а также включить столбцы «Дата начала» и «Используемое время» во внешний запрос, чтобы я мог также получить доступ к этим данным.