RolandPricken
Gebruiker
- Lid geworden
- 17 sep 2010
- Berichten
- 49
Hallo allen,
Ik heb een vraag mbt parameters.
Normaal definieer ik een dataset voor een parameter als volgt:
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Nu is elke locatie om te kiezen uniek. Bij de reportbuilder krijg ik zo een mooi drop down lijstje te zien om mijn data op te kunnen filteren.
Ik zit nu echter met het volgende probleem.
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS, INVENTJOURNALNAMEID
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Er zijn 2 velden waar rekening mee gehouden moet worden voor 1 parameter, namelijk pickingliststatus en inventjournalnameid
Pickingliststatus bestaat uit de getallen 0 of 3 of 4 of 5
Journalnameid bestaat uit o.a. 'lossprofit' of 'retour' of 'used'
Zie onderstaand plaatje, er zijn diverse combinaties mogelijk, in totaal 16
Ik heb 4 variaties wat ik wil kunnen selecteren zodat deze als parameter gebruikt kunnen worden.
'Totaal' = 0 en 3 en 4 en 5 ongeacht journalnameid, mogen dus allemaal meedoen, lossprofit en retour, etc. (alle 16 dus)
'Correctie' = 4 met lossprofit en 5 met lossprofit (2 stuks)
'Terug' = 5 maar dan zonder lossprofit, wel met de rest (7 stuks)
'Open' = 0 ongeacht journalnameid (1 stuk)
Ik kan de parameter alleen plaatsen op pickliststatus, er is voor de rest niets unieks in de tabel.
Echter met de query die ik nu heb krijg ik, logischerwijs, meerdere keren dezelfde getallen terug. Bijvoorbeeld bij 'Terug' krijg ik nu terug:
De query ziet er nu zo uit:
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS
FROM DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 4) AND (INVENTJOURNALNAMEID LIKE 'lossprofit') OR
(DYNA_PICKINGLISTSTATUS = 5) AND (INVENTJOURNALNAMEID LIKE 'lossprofit')
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 5) AND (NOT (INVENTJOURNALNAMEID LIKE 'lossprofit'))
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 0)
union all
SELECT DISTINCT
DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Oorspronkelijk zo, zodat ik weet wat ik kies in het vensterje, anders weet ik niet welke 4 bij wat hoort.
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 4 THEN CONVERT(VARCHAR(25), 'Correctie', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 5 THEN CONVERT(VARCHAR(25), 'Correctie', 126) END END AS Expr1
FROM DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 4) AND (INVENTJOURNALNAMEID LIKE 'lossprofit') OR
(DYNA_PICKINGLISTSTATUS = 5) AND (INVENTJOURNALNAMEID LIKE 'lossprofit')
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 5 THEN CONVERT(VARCHAR(25), 'Teruggestuurd', 126) END AS Expr1
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 5) AND (NOT (INVENTJOURNALNAMEID LIKE 'lossprofit'))
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 0 THEN CONVERT(VARCHAR(25), 'Open', 126) END AS Expr1
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 0)
union all
SELECT DISTINCT
DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 0 THEN CONVERT(VARCHAR(25), 'Allen', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 4 THEN CONVERT(VARCHAR(25), 'Allen', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 5 THEN CONVERT(VARCHAR(25), 'Allen', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 3 THEN CONVERT(VARCHAR(25), 'Allen', 126) END END END END AS Expr1
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Output:
Als ik nu een of meerdere velden aanklik in de reportbuilder, verspringt de gekozen waarde, hierdoor kloppen de waardes niet. Bijvoorbeeld als ik 'Terug' aanklik, verspringt hij naar 'Correctie' (staat 1 regel hoger). Klik ik de 4 laatste aan ('Allen'), verspringt hij naar 'Correctie', 'Correctie', 'Open' en 'Allen'.
Hoe kan dit?
Is er geen betere/makkelijkere manier om dit soort parameters in te stellen?
Het zou fijn zijn om alles maar 1x te zien te krijgen, dus geen 4 x 'allen'.....
Bij voorbaat dank.
Ik heb een vraag mbt parameters.
Normaal definieer ik een dataset voor een parameter als volgt:
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Nu is elke locatie om te kiezen uniek. Bij de reportbuilder krijg ik zo een mooi drop down lijstje te zien om mijn data op te kunnen filteren.
Ik zit nu echter met het volgende probleem.
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS, INVENTJOURNALNAMEID
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Er zijn 2 velden waar rekening mee gehouden moet worden voor 1 parameter, namelijk pickingliststatus en inventjournalnameid
Pickingliststatus bestaat uit de getallen 0 of 3 of 4 of 5
Journalnameid bestaat uit o.a. 'lossprofit' of 'retour' of 'used'
Zie onderstaand plaatje, er zijn diverse combinaties mogelijk, in totaal 16
Ik heb 4 variaties wat ik wil kunnen selecteren zodat deze als parameter gebruikt kunnen worden.
'Totaal' = 0 en 3 en 4 en 5 ongeacht journalnameid, mogen dus allemaal meedoen, lossprofit en retour, etc. (alle 16 dus)
'Correctie' = 4 met lossprofit en 5 met lossprofit (2 stuks)
'Terug' = 5 maar dan zonder lossprofit, wel met de rest (7 stuks)
'Open' = 0 ongeacht journalnameid (1 stuk)
Ik kan de parameter alleen plaatsen op pickliststatus, er is voor de rest niets unieks in de tabel.
Echter met de query die ik nu heb krijg ik, logischerwijs, meerdere keren dezelfde getallen terug. Bijvoorbeeld bij 'Terug' krijg ik nu terug:
De query ziet er nu zo uit:
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS
FROM DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 4) AND (INVENTJOURNALNAMEID LIKE 'lossprofit') OR
(DYNA_PICKINGLISTSTATUS = 5) AND (INVENTJOURNALNAMEID LIKE 'lossprofit')
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 5) AND (NOT (INVENTJOURNALNAMEID LIKE 'lossprofit'))
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 0)
union all
SELECT DISTINCT
DYNA_PICKINGLISTSTATUS
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Oorspronkelijk zo, zodat ik weet wat ik kies in het vensterje, anders weet ik niet welke 4 bij wat hoort.
[sql]SELECT DISTINCT
DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 4 THEN CONVERT(VARCHAR(25), 'Correctie', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 5 THEN CONVERT(VARCHAR(25), 'Correctie', 126) END END AS Expr1
FROM DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 4) AND (INVENTJOURNALNAMEID LIKE 'lossprofit') OR
(DYNA_PICKINGLISTSTATUS = 5) AND (INVENTJOURNALNAMEID LIKE 'lossprofit')
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 5 THEN CONVERT(VARCHAR(25), 'Teruggestuurd', 126) END AS Expr1
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 5) AND (NOT (INVENTJOURNALNAMEID LIKE 'lossprofit'))
union all
SELECT DISTINCT DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 0 THEN CONVERT(VARCHAR(25), 'Open', 126) END AS Expr1
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046
WHERE (DYNA_PICKINGLISTSTATUS = 0)
union all
SELECT DISTINCT
DYNA_PICKINGLISTSTATUS, CASE WHEN DYNA_PICKINGLISTSTATUS = 0 THEN CONVERT(VARCHAR(25), 'Allen', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 4 THEN CONVERT(VARCHAR(25), 'Allen', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 5 THEN CONVERT(VARCHAR(25), 'Allen', 126)
ELSE CASE WHEN DYNA_PICKINGLISTSTATUS = 3 THEN CONVERT(VARCHAR(25), 'Allen', 126) END END END END AS Expr1
FROM dbo.DYNA_GSMREPAIR_PICKINGLIS50046[/sql]
Output:
Als ik nu een of meerdere velden aanklik in de reportbuilder, verspringt de gekozen waarde, hierdoor kloppen de waardes niet. Bijvoorbeeld als ik 'Terug' aanklik, verspringt hij naar 'Correctie' (staat 1 regel hoger). Klik ik de 4 laatste aan ('Allen'), verspringt hij naar 'Correctie', 'Correctie', 'Open' en 'Allen'.
Hoe kan dit?
Is er geen betere/makkelijkere manier om dit soort parameters in te stellen?
Het zou fijn zijn om alles maar 1x te zien te krijgen, dus geen 4 x 'allen'.....
Bij voorbaat dank.
Laatst bewerkt: