Nieuw lid |
|
Eigenlijk moet ik 2 queries kunnen combineren
Apart is het geen enkel probleem
Combineren, aiaiaiaiai
De eerste is een simpele SELECT * (beneden getoont met gespecifieere veldnamen)
De tweede is een SUM and COUNT query
De tweed query moet eigenlijk werken op elk record result van de eerste query
Heb al hele tijd zitten experimenteren met JOIN functie zonder enig succes.
Om het dan nog eens extra ingewikkeld te maken is er de CONCAT
prdbesarch.artcode + '_' + prdbesarch.klrcode
is zelfde als
teststock.CombArtNr
Eerste query:
_________
SELECT
prdbesarch.ID,
prdbesarch.klantnr,
prdbesarch.besnr,
prdbesarch.refklant,
prdbesarch.itemnr,
prdbesarch.artcode,
prdbesarch.klrcode,
prdbesarch.qty,
FROM prdbesarch
WHERE (artcode LIKE 'A1101')
ORDER BY ID ASC
SELECT prdbesarch.ID, prdbesarch.klantnr, prdbesarch.besnr, prdbesarch.refklant, prdbesarch.itemnr, prdbesarch.artcode, prdbesarch.klrcode, prdbesarch.qty, FROM prdbesarch WHERE (artcode LIKE 'A1101') ORDER BY ID ASC
Tweede query: (CONCAT('A1101','_','2') ... <== = ==> prdbesarch.artcode,'_',prdbesarch.klrcode)
___________
SELECT CombArtNr,
SUM(CASE KlantNr WHEN '123' THEN 1 ELSE 0 END) "FromStock",
SUM(CASE KlantNr WHEN '0' THEN 1 ELSE 0 END) "RestStock",
COUNT(CombArtNr) "AllStock"
FROM teststock WHERE CombArtNr = CONCAT('A1101','_','2')
GROUP BY CombArtNr
SELECT CombArtNr, SUM(CASE KlantNr WHEN '123' THEN 1 ELSE 0 END) "FromStock", SUM(CASE KlantNr WHEN '0' THEN 1 ELSE 0 END) "RestStock", COUNT(CombArtNr) "AllStock" FROM teststock WHERE CombArtNr = CONCAT('A1101','_','2') GROUP BY CombArtNr
En dit is dan de combinatie welke ik heb geprobeerd met natuurlijk een kompleet fout result.
_______________
SELECT
prdbesarch.ID,
prdbesarch.klantnr,
prdbesarch.besnr,
prdbesarch.refklant,
prdbesarch.itemnr,
prdbesarch.artcode,
prdbesarch.klrcode,
prdbesarch.qty,
teststock.CombArtNr,
SUM(CASE teststock.KlantNr WHEN 'prdbesarch.klantnr' THEN 1 ELSE 0 END) "FromStock",
SUM(CASE teststock.KlantNr WHEN '0' THEN 1 ELSE 0 END) "RestStock",
COUNT(teststock.CombArtNr) "AllStock"
FROM prdbesarch
JOIN teststock
ON teststock.CombArtNr = CONCAT(prdbesarch.artcode,'_',prdbesarch.klrcode)
GROUP BY teststock.CombArtNr
ORDER BY prdbesarch.ID ASC
SELECT prdbesarch.ID, prdbesarch.klantnr, prdbesarch.besnr, prdbesarch.refklant, prdbesarch.itemnr, prdbesarch.artcode, prdbesarch.klrcode, prdbesarch.qty, teststock.CombArtNr, SUM(CASE teststock.KlantNr WHEN 'prdbesarch.klantnr' THEN 1 ELSE 0 END) "FromStock", SUM(CASE teststock.KlantNr WHEN '0' THEN 1 ELSE 0 END) "RestStock", COUNT(teststock.CombArtNr) "AllStock" FROM prdbesarch JOIN teststock ON teststock.CombArtNr = CONCAT(prdbesarch.artcode,'_',prdbesarch.klrcode) GROUP BY teststock.CombArtNr ORDER BY prdbesarch.ID ASC
PROBLEEM1 -> ik krijg enkel de distinct results vanteststock (enkel 2 if count distinct is 2)
PROBLEEM2 -> de SUM en COUNT results zijn dan nog is verkeerd ook!
|