Good!
I have two tables:
A: PRINTER (ID), DATE, STORAGE, TYPE
B: Autoreg (ID), PRINTER, PRODUCT
And I wanted to have a type result:
TotalCombustible, TotalStore, Mixed
Where the Fuel is when the product is = 1, the Store is > 1 and the mixed is
If I see the rows all of the table I have gives this:
NowImadetheconnectionlikethis:
SELECT(SELECTCOUNT(DISTINCT[VendasPOS_Linhas].[PRENUMERO])FROM[VendasPOS_Linhas]JOIN[VendasPOS_Cabecalhos]ON[VendasPOS_Linhas].[PRENUMERO]=[VendasPOS_Cabecalhos].[PRENUMERO]WHERE[VendasPOS_Cabecalhos].[FACT_VD]like'T'AND[VendasPOS_Cabecalhos].[DATA]>'2015-06-0100:00:00.000'AND[VendasPOS_Cabecalhos].[Armazem]='454'AND[VendasPOS_Linhas].[PRODUTO]>1)ASQtdLoja,(SELECTCOUNT(DISTINCT[VendasPOS_Linhas].[PRENUMERO])FROM[VendasPOS_Linhas]JOIN[VendasPOS_Cabecalhos]ON[VendasPOS_Linhas].[PRENUMERO]=[VendasPOS_Cabecalhos].[PRENUMERO]WHERE[VendasPOS_Cabecalhos].[FACT_VD]like'T'AND[VendasPOS_Cabecalhos].[DATA]>'2015-06-0100:00:00.000'AND[VendasPOS_Cabecalhos].[Armazem]='454'AND[VendasPOS_Linhas].[PRODUTO]=1)ASQtdCombustivel,(SELECTCOUNT(DISTINCT[VendasPOS_Cabecalhos].[PRENUMERO])fromVendasPOS_LinhasJOIN[VendasPOS_Cabecalhos]ON[VendasPOS_Linhas].[PRENUMERO]=[VendasPOS_Cabecalhos].[PRENUMERO]whereDATA>'2015-06-0100:00:00.000'andArmazem='454'AND[VendasPOS_Cabecalhos].[FACT_VD]like'T')ASTotal
Andtheresultgivesthis:
But soon here I see some errors.
1st Total seems to be over.
2º The totalComb and TotalLoja are counting those that are also mixed
3º In line 11 and 12 we can see that it has PREMIUMS the same but the product is both> 1 and in the bottom line = 1 and this is part of the mixed. How do I see if a PRENUMERO both has 1 and> 1 being that it gives different rows. That is, I have to see what the duplicates are and see if the same PRENUMERO has = 1 and> 1 but not if this is possible.
RESOLVED:
SELECT
(SELECT COUNT(DISTINCT [VendasPOS_Linhas].[PRENUMERO]) FROM [VendasPOS_Linhas]
INNER JOIN
(
SELECT [VendasPOS_Linhas].[PRENUMERO]
FROM
[VendasPOS_Linhas]
JOIN [VendasPOS_Cabecalhos]
ON [VendasPOS_Linhas].[PRENUMERO] = [VendasPOS_Cabecalhos].[PRENUMERO]
WHERE
[VendasPOS_Cabecalhos].[FACT_VD] like 'T' AND
[VendasPOS_Cabecalhos].[DATA] > '2015-06-01 00:00:00.000' AND
[VendasPOS_Cabecalhos].[Armazem] = '454'
GROUP BY [VendasPOS_Linhas].[PRENUMERO]
HAVING COUNT(DISTINCT [VendasPOS_Linhas].[PRODUTO]) = 1
) combustivel ON combustivel.PRENUMERO = [VendasPOS_Linhas].[PRENUMERO]
WHERE [VendasPOS_Linhas].[PRODUTO] = 1
) AS QtdeCombustivel,
(SELECT COUNT(DISTINCT [VendasPOS_Linhas].[PRENUMERO]) FROM [VendasPOS_Linhas]
INNER JOIN
(
SELECT [VendasPOS_Linhas].[PRENUMERO]
FROM
[VendasPOS_Linhas]
JOIN [VendasPOS_Cabecalhos]
ON [VendasPOS_Linhas].[PRENUMERO] = [VendasPOS_Cabecalhos].[PRENUMERO]
WHERE
[VendasPOS_Cabecalhos].[FACT_VD] like 'T' AND
[VendasPOS_Cabecalhos].[DATA] > '2015-06-01 00:00:00.000' AND
[VendasPOS_Cabecalhos].[Armazem] = '454'
GROUP BY [VendasPOS_Linhas].[PRENUMERO]
HAVING COUNT(DISTINCT [VendasPOS_Linhas].[PRODUTO]) = 1
) loja ON loja.PRENUMERO = [VendasPOS_Linhas].[PRENUMERO]
WHERE [VendasPOS_Linhas].[PRODUTO] > 1
) AS QtdeLoja,
(SELECT COUNT(DISTINCT [VendasPOS_Linhas].[PRENUMERO]) FROM [VendasPOS_Linhas]
INNER JOIN
(
SELECT [VendasPOS_Linhas].[PRENUMERO]
FROM
[VendasPOS_Linhas]
JOIN [VendasPOS_Cabecalhos]
ON [VendasPOS_Linhas].[PRENUMERO] = [VendasPOS_Cabecalhos].[PRENUMERO]
WHERE
[VendasPOS_Cabecalhos].[FACT_VD] like 'T' AND
[VendasPOS_Cabecalhos].[DATA] > '2015-06-01 00:00:00.000' AND
[VendasPOS_Cabecalhos].[Armazem] = '454'
GROUP BY [VendasPOS_Linhas].[PRENUMERO]
HAVING COUNT(DISTINCT [VendasPOS_Linhas].[PRODUTO]) > 1
) mista ON mista.PRENUMERO = [VendasPOS_Linhas].[PRENUMERO]
) AS QtdeMista