CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
07.04.2014, 17:12:16
|
Anfänger
|
|
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
|
|
View in Procedure verwenden
Ich habe diese View die mir den Umsatz je Kundennummer je Jahr darstellt:
Code:
VIEW `abf_turnover_customer_year` AS
select
`tabrechnung`.`KundennrR` AS `Kundennr`,
sum(((`tabrechnung`.`ArtikelSumNet` + `tabrechnung`.`VerpackungR`) + `tabrechnung`.`VersicherungR`)) AS `turnover`,
year(`tabrechnung`.`RDatum`) AS `jahr`
from
(`tabrechnung`
left join `tabgutschrift` ON ((`tabgutschrift`.`GRechnungsnr` = `tabrechnung`.`Rechnungsnr`)))
group by `tabrechnung`.`KundennrR` , year(`tabrechnung`.`RDatum`) , `tabgutschrift`.`GRechnungsnr`
having isnull(`tabgutschrift`.`GRechnungsnr`)
order by `tabrechnung`.`KundennrR`
und würde sie gerne in dieser Prozedur, die den Jahresumsatz in den Kundenstamm schreiben soll, verwenden:
Code:
BEGIN
UPDATE tabkundenadressen
SET tabkundenadressen.2014 = abf_turnover_customer_year.turnover
WHERE tabkundenadressen.Kundennummer = abf_turnover_customer_year.Kundennr and abf_turnover_customer_year.jahr = 2014;
END
Die View wird korrekt ausgeführt, aber der Prozeduraufruf zeigt keine Wirkung. Wenn ich den Update-Code im Query-Browser eingebe kommt der Fehler, dass die Spalte 'Kundennr' im 'where clause' unbekannt wäre.
Greife ich falsch auf diese View zu?
|
08.04.2014, 12:41:03
|
Anfänger
|
|
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
|
|
AW: View in Procedure verwenden
Ich bin hier immer noch nicht weitergekommen..
In MSSQL konnte ich auf diese Weise auf die Views zugreifen. Gibt es denn in MySQL eine andere Lösung? In den Hilfen wird immer nur von "table_reference" gesprochen, aber ob hier wirklich die Views auszuschließen sind konnte ich nirgends erkennen.
|
09.04.2014, 13:04:28
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: View in Procedure verwenden
Zitat:
Zitat von Daktari
Ich habe diese View die mir den Umsatz je Kundennummer je Jahr darstellt:
Code:
VIEW `abf_turnover_customer_year` AS
select
`tabrechnung`.`KundennrR` AS `Kundennr`,
Code:
BEGIN
WHERE tabkundenadressen.Kundennummer = abf_turnover_customer_year.Kundennr and
Die View wird korrekt ausgeführt, aber der Prozeduraufruf zeigt keine Wirkung. Wenn ich den Update-Code im Query-Browser eingebe kommt der Fehler, dass die Spalte 'Kundennr' im 'where clause' unbekannt wäre.
Greife ich falsch auf diese View zu?
|
Du siehst den Unterschied?
|
09.04.2014, 15:38:06
|
Anfänger
|
|
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
|
|
AW: View in Procedure verwenden
Die Anführungsstriche??
Mit diesen habe ich den gleichen Effekt!
Oder hab ich das Rätsel nicht gelöst?
|
09.04.2014, 15:55:46
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: View in Procedure verwenden
Zitat:
Zitat von pguser
Du siehst den Unterschied?
|
Wird das hier ein heiteres Tabellenraten? Kein Leser (außer dem Fragesteller) weiß, wie die CREATE TABLES der Tabellen aussehen. Ich persönlich bin zu faul dazu, die Bedeutung aller unterschiedlichen Schreibweisen von ominösen Kundenn(umme)r(R|n) abzufragen.
|
09.04.2014, 16:48:46
|
Anfänger
|
|
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
|
|
AW: View in Procedure verwenden
Verstehe ich nicht... Bekommt hier nur geholfen wer seine Tabellenspalten nach Normen bezeichnet (die ich leider nicht kenne oder nicht konsequent angewendet habe)? Oder liegt in der Kundennummer schon das Problem? Ist die Fragestellung zu dürftig, werden mehr Details benötigt?
|
09.04.2014, 18:56:24
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: View in Procedure verwenden
Zitat:
Zitat von Daktari
Ist die Fragestellung zu dürftig, werden mehr Details benötigt?
|
Laß uns doch noch etwas herumraten, bevor Du das Rätsel auflöst, wie Deine Tabellen aussehen.
|
10.04.2014, 01:59:01
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: View in Procedure verwenden
Hallo,
*Brilleputz*
Zitat:
Du siehst den Unterschied?
|
Ich seh keinen O.o
Zitat:
Bekommt hier nur geholfen wer seine Tabellenspalten nach Normen bezeichnet
|
Ne aber wenn man schon 3 verschiedene Schreibweisen von Kundennummer sieht
ahnt mann schlimmes ;)
Ich glaube mal Bugs von MySQL zu View aliases gehört zu haben...
Versuch mal deinen View ohne KDNR alias ;)
HTML-Code:
SHOW CREATE VIEW
Kennste?
MfG
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
10.04.2014, 10:06:55
|
Anfänger
|
|
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
|
|
AW: View in Procedure verwenden
Ich wundere mich schon etwas über den Ton hier... Hab doch ganz normal gefragt, oder nicht?
Bin nun mal kein Programmierer, deswegen such ich ja hier nach Unterstützung.
Die ganzen Bezeichner wurden von mir vor einiger Zeit übernommen und leider recht konsequent analog fortgeführt. Seit einigen Wochen ist das ganze am Laufen und ich habe auch schon einiges "korrigiert", bzw. ins Englische übersetzt (das DeutschEnglisch hat auch massiv gestört). Aber ich verstehe nicht weshalb man dann in all den Foren deswegen in dem Ton so angequatscht wird..
Alsoo.. hier erst mal die CREATE TABLES (um einige Zellen verkürzt):
Code:
CREATE TABLE `tabkundenadressen` (
`RFirma1` varchar(80) COLLATE latin1_german2_ci NOT NULL,
`RFirma2` varchar(80) COLLATE latin1_german2_ci DEFAULT NULL,
`RStrasse` varchar(100) COLLATE latin1_german2_ci DEFAULT NULL,
`RPLZ` varchar(10) COLLATE latin1_german2_ci NOT NULL,
`RStadt` varchar(50) COLLATE latin1_german2_ci NOT NULL,
`RLand` varchar(50) COLLATE latin1_german2_ci NOT NULL,
`RTelefon` varchar(20) COLLATE latin1_german2_ci DEFAULT NULL,
`RFax` varchar(20) COLLATE latin1_german2_ci DEFAULT NULL,
`2009` int(11) DEFAULT NULL,
`2010` int(11) DEFAULT NULL,
`2011` int(11) DEFAULT NULL,
`2012` int(11) DEFAULT NULL,
`2013` int(11) DEFAULT NULL,
`2014` int(11) DEFAULT NULL,
`timestamp` timestamp NULL DEFAULT NULL,
`Kundennummer` int(5) NOT NULL,
PRIMARY KEY (`IndexKu`),
UNIQUE KEY `index_rfirma1_kundennummer` (`Kundennummer`,`IndexKu`,`RFirma1`)
) ENGINE=MyISAM AUTO_INCREMENT=4100 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Code:
CREATE TABLE `tabrechnung` (
`Rechnungsnr` int(10) NOT NULL AUTO_INCREMENT,
`ReBrutto` int(11) NOT NULL DEFAULT '0',
`bezBetrag` int(11) DEFAULT '0',
`bezDatum` date DEFAULT NULL,
`KundennrR` int(5) DEFAULT NULL,
`RDatum` date DEFAULT NULL,
`lock` tinyint(1) DEFAULT '0',
`ArtikelSumNet` int(11) DEFAULT NULL,
`VerpackungR` int(11) DEFAULT '0',
`VersicherungR` int(11) DEFAULT '0',
`Fracht` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`Rechnungsnr`),
UNIQUE KEY `auftrag_rechnungsnr` (`AuftragsnrR`,`Rechnungsnr`)
) ENGINE=MyISAM AUTO_INCREMENT=15202 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Ich habe auch gerade versucht die VIEW neu zu erstellen, mit der Workbench und mit dem Query-Browser, aber wenn ich für die Kundennummer keinen Alias angebe wird beim Speichern der VIEW jeweils ein Alias eingefügt. Immer:
Code:
`tabrechnung`.`KundennrR` AS `KundennrR`,
Damit hab ich dann trotzdem auch noch mal versucht die Prozedur zu starten, aber er konnte wieder diese Spalte in der View nicht finden.
|
10.04.2014, 10:27:44
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: View in Procedure verwenden
Zitat:
Zitat von Daktari
Ich wundere mich schon etwas über den Ton hier... Hab doch ganz normal gefragt, oder nicht?
|
Code:
ERROR 1072 (42000): Key column 'IndexKu' doesn't exist in table
Egal. MyISAM -> Schrott aus dem letzen Jahrtausend. Keine referentielle Integrität zwischen den Tabellen. Unnormalisiert (was sollen die Jahreszahlen da, kommt da 2015 eine neue Spalte dazu?), Beträge als INT. Zeitverschwendung.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:53:37 Uhr.
|