2016-01-14 2 views
0

У меня есть этот запрос доступа:Access DB запрос необходима помощь

SELECT trans, sum(total) as tax 
FROM PURCHASE 
WHERE matType LIKE 'ad-tax' 
     and trans IN (SELECT trans FROM PURCHASE WHERE matType LIKE 'P-%' Group by trans) 
group by trans 

И этот запрос:

SELECT trans, sum(total) as Total 
FROM PURCHASE 
WHERE matType not LIKE 'ad-tax' 
     and trans IN (SELECT trans FROM PURCHASE WHERE matType LIKE 'P-%' Group by trans) 
group by trans 

я должен искать для сделок, содержащих правильный matType, потому что мне нужно только те, есть налог как товар.

транс ------ Пункт ----- matType ------ Всего

66 ............. 1 ...... ..... ad-tax ......... 9.00

66 ............. 2 ........... p- 944 .......... 60,00

67 ............. 1 ........... ad-tax ..... .... 6,00

67 ............. 2 ........... p-903 .......... 40.00

68 ............. 1 ........... p-998 ....... ... 29.00

69 ............. 1 ........... p-921 .......... 10.00

и т. Д.

Я хотел бы знать, как запросить: Trans | Всего | Налог в одном заявлении. Это должно быть между двумя датами, но я могу понять это сам. Я запрашиваю у vb.net, если это имеет значение.

+0

вы не смогли задать вопрос или описать проблему (ы) с тем, что у вас есть – Plutonix

+0

это там просто не было достаточно ясно, я думаю, я бы л ike для запроса trans, total, tax только от транзакций, у которых есть элемент налога, Im не pro на этом материале, оба запроса, которые я опубликовал, делают то, что я хочу, но я хотел бы присоединиться к нему в одном заявлении, чтобы результаты были сторонними by side: Trans-Total-Tax – myekem

+0

Спасибо за быстрый ответ! – myekem

ответ

1

Может быть:

SELECT 'tax', trans, sum(total) as tax FROM PURCHASE 
    WHERE matType LIKE 'ad-tax' and trans 
    IN (SELECT trans FROM PURCHASE WHERE matType LIKE 'P-%' Group by trans) 
    group by trans 

UNION ALL 

SELECT 'total', trans, sum(total) as Total FROM PURCHASE 
WHERE matType not LIKE 'ad-tax' and trans IN (SELECT trans 
FROM PURCHASE WHERE matType LIKE 'P-%' Group by trans) 
group by trans 

Я не ваши таблицы здесь, так что я не могу попробовать это лучше

Дополнение: Это не работает, как вам нравится, так что попробовать что-то вроде этого:

SELECT * FROM 
(SELECT trans, sum(total) as tax FROM PURCHASE WHERE matType LIKE 'ad-tax' and trans IN (SELECT trans FROM PURCHASE WHERE matType LIKE 'P-%' Group by trans) group by trans) [FIRST] 
JOIN 
(SELECT trans, sum(total) as Tot FROM PURCHASE WHERE matType not LIKE 'ad-tax' and trans IN (SELECT trans FROM PURCHASE WHERE matType LIKE 'P-%' Group by trans) group by trans) [SECOND] 
ON [FIRST].[TRANS] = [SECOND].[TRANS] 
+0

Закрыть, вместо того, чтобы быть бок о бок, он добавлен на дно. Есть идеи? – myekem

+0

ОК, затем сделайте выбор (сначала выберите) join (второй выбор) ... что-то подобное в моем ответе editd - до сих пор нет доступа здесь, но идея должна быть ясной – nabuchodonossor

+0

, когда я попытался (сначала выбрать) join (второй выберите), это провалилось. Я прочитал кучу и много раз пробовал и не мог понять. Вот почему я подписался здесь. – myekem