mysql: NULL Wert erzeugen
bearbeitet von Rolf BHallo Jörg,
> Nein, das ist tatsächlich nur 1 column.
Dann sollte ein SELECT DISTINCT xyz möglich sein, um Duplikate auszublenden. Oder verstehst Du unter einem "unique array" in PHP was Spezielles?
> Achso... natürlich bin ich jetzt grad im php-Kontext unterwegs. Sorry, ich dachte, das sei klar.
Nein, wie denn. Du hast den Thread mit MYSQL getaggt.
Um die Erkenntnis voranzubringen - Du schriebst an Tabellenkalk:
> Das Problem ist ja, dass von den (in obigem Beispiel) 4 Vorgängen überhaupt nur 2 Vorgänge in der Tabelle erfasst sind.
> Soll heißen, diese beiden müssten mit 0% gewertet werden.
**Jetzt** wird ein ganzer Schuhladen draus.
Du versuchst also - wenn ich die ID mal mit in das Ergebnis nehme - so was zu bekommen, wenn die IDs 4724 und 4896 nicht in myTable enthalten sind:
~~~
ID xyz
4401 5
4724 null (oder 0)
4895 7
4896 null (oder 0)
~~~
Wenn ich das richtig deute, ist es Dir doch egal, **welche** IDs nicht da sind. Wichtig ist nur, dass welche fehlen. **Wenn** welche fehlen, wertest Du sie mit 0% und daraus folgt: diejenigen, die vorhanden sind, müssen 0% enthalten, damit du fakturieren kannst.
Wie wäre es mit
~~~sql
SELECT xyz, COUNT(*) as Anzahl
FROM myTable
WHERE ID IN (....)
GROUP BY xyz
~~~
Nehmen wir noch an, dass Du in $numIDs die Anzahl der IDs stehen hast, die Du in die IN Klausel hineingibst.
Du bekommst:
* 0 Treffer: Kein Rabatt
* 1 Treffer, Anzahl == $numIDs - Rabatt = xyz
* 1 Treffer, Anzahl < $numIDs, xyz = 0: Okay, kein Rabatt
* 1 Treffer, Anzahl < $numIDs, xyz > 0: Keine Fakturierung weil Widerspruch zu den als 0 angenommenen Sätzen
* 2 Treffer oder mehr: Keine Fakturierung weil Widerspruch in den gefundenen Sätzen
_Rolf_
--
sumpsi - posui - obstruxi